JAVA第五周 动手动脑

public class Example
{
 int x = 3;//类的实例变量,初始化值为3
 static int  y = 4;//类的静态变量,初始化值为4
 public static void method()//静态方法
  {
   System.out.println("实例变量x = " + new Example().x);//在静态方法中访问类的实例变量需首先进行类的实例化
   System.out.println("静态变量y = " + y);//在静态方法中可直接访问类的静态变量
  }

 public static void main(String[] args)
    {
         Example.method();
         Example ex = new Example();
        System.out.println("x = " + ex.x);
    }
}

 运行截图:

如何在静态方法中访问类的实例成员:

静态方法中访问类的实例变量需首先进行类的实例化,可直接访问类的静态变量。

拓展(菜鸟教程):

通过已创建的对象来访问成员变量和成员方法,如下所示:

/* 实例化对象 */
ObjectReference = new Constructor();
/* 访问类中的变量 */
ObjectReference.variableName;
/* 访问类中的方法 */
ObjectReference.methodName();

package 课件测试;

public class Example {

    public static void main(String[] args) {

        InitializeBlockClass obj=new InitializeBlockClass();
        System.out.println(obj.field);
    }
}

class InitializeBlockClass{
    {
        field=200;
    }
    public int field=100;
    public InitializeBlockClass(int value){
        this.field=value;
    }
    public InitializeBlockClass(){

    }
}

输出结果:

100

300

package 课件测试;

public class Example {

    public static void main(String[] args) {

        InitializeBlockClass obj=new InitializeBlockClass();
        System.out.println(obj.field);
    }
}

class InitializeBlockClass{
    public int field=100;
    {
        field=200;
    }    public InitializeBlockClass(int value){
        this.field=value;
    }
    public InitializeBlockClass(){

    }
}

  输出结果:

200

300

从这两个例子中可以看出:当初始化一个对象时,按照类定义中的初始化顺序进行初始化,在定义后部分的初始化内容会覆盖之前的初始化效果。

原文地址:https://www.cnblogs.com/zmh-980509/p/9825649.html

时间: 2024-10-10 15:35:06

JAVA第五周 动手动脑的相关文章

Java 第五周 动手动脑

一.以下代码为何无法通过编译?哪儿出错了? 原因分析:这是一个常见的构造错误,错误的自己构建了构造方法,导致系统无法正常的进行变量的构造,系统默认的构造方法无法正常运行 二. package demo; public class Test { public static void main(String[] args) { // TODO 自动生成的方法存根 Foo obj1=new Foo(); Foo obj2=new Foo(); System.out.println(obj1==obj2

第五周动手动脑(2018.10.15-10.21)

问题一: 早期经常这样定义变量:int value=100: 前面的这样定义:myclass obj=new myclass(); 这两种方式定义的变量是一样的吗? 答:当声明一个对象类型的变量时,实际上并没有创建一个对象,此变量=null.//myclass obj=new myclass(); 定义一个原始类型的变量时,会马上给其分配内存 //int value=100: 问题二: 对于原始数据类型的变量(比如int),可以直接使用"=="判断两变量值是否相等 对象变量也可以使用&

第五周动手动脑

1.早期经常这样定义变量:int value=100: 前面的这样定义:myclass obj=new myclass(); 这两种方式定义的变量是一样的吗? 答:当声明一个对象类型的变量时,实际上并没有创建一个对象,此变量=null.//myclass obj=new myclass(); 定义一个原始类型的变量时,会马上给其分配内存 //int value=100: 2.以下代码为何无法通过编译?哪儿出错了? public class Test { public static void ma

201671010117 2016-2017-2 《Java程序设计》Java第五周学习心得

Java第五周学习心得       通过这一周的学习,对继承有了一定的了解,但是不是很熟悉,老师上课按以前的方法讲解了第五节的懂得了更深入了一点,还需要多多敲代码来掌握的更深,因为方法突然的改变,还是有一点的不习惯,所以现在还在适应中,感觉部分知识掌握的不是很深入,还需要加强.

JAVA语法基础作业——动手动脑以及课后实验性问题 (七)

一.动手动脑 1)源代码 public class ParentChildTest { public static void main(String[] args) { Parent parent=new Parent(); parent.printValue(); Child child=new Child(); child.printValue(); parent=child; parent.printValue(); parent.myValue++; parent.printValue(

Java第五周学习总结

20145307 <Java程序设计>第五周学习总结 教材学习内容总结 C8 使用try.catch打包System.in.read(),声明throws java.io.IOException. ·如果父类异常对象在子类异常前被捕捉,则catch子类异常对象的区块将永远不会被执行. ·catch括号中列出的异常不得有继承关系,否则会发生编译错误. ·在catch区块进行完部分错误处理之后,可以使用throw将异常再抛出. ·操作对象异常无法使用try.catch处理时,可由方法的客户端一句当

Java类和对象动手动脑

动手动脑1 以下代码为何无法通过编译?哪儿出错了? 如果类提供了一个自定义的构造方法,将导致系统不再提供默认构造方法. 动手动脑2 进行试验 使用上页幻灯片中定义的类,以下代码输出结果是什么? public class Test { public static void main(String[] args) { InitializeBlockClass obj=new InitializeBlockClass(); System.out.println(obj.field);//? obj=n

java中06的动手动脑

任务一: 代码: package Shi;   import javax.swing.JOptionPane;   public class Shi6d1 {   public static void main(String[] args) {   int array[] = new int[10]; for(int m=0;m<10;m++) {array[m] = (int)(Math.random()*100);} String str=""; for(int m=0;m&

java中08的动手动脑

任务一: ATM机模拟: 代码: //赵子鸣,20153131,信1505-2班 package Shi; import java.util.Scanner; abstract class Atm{ public abstract void zhuan(String a,double b); public abstract void setmima(String a); public abstract double getyue(); public abstract String getmima