《类与对象》例题与动脑思考

1. ClassAndObjectTest的调试结果:

2.ObjectEquals的调试结果:

3.TestStaticInitializeBlock的调试结果:

静态初始化块只执行一次;创建子类型的对象时,也会导致父类型的静态初始化块的执行。

4.StrangeIntegerBehavior的调试结果

5.“进行实验”

package demo;
class InitializeBlockClass{
 {
 field = 200;
 }
 public int field = 100;
 public InitializeBlockClass(int value) {
  this.field = value;
 }
 public InitializeBlockClass() {
  
 }
 public static void main(String[] args) {
  // TODO 自动生成的方法存根
  InitializeBlockClass obj = new InitializeBlockClass();
  System.out.println(obj.field);
  
  obj = new InitializeBlockClass(300);
  System.out.println(obj.field);
 }
}

Java字段初始化的规律:

执行类成员定义时指定的默认值或类的初始化块,到底执行哪一个要看哪一个“排在前面”

执行类的构造函数

6.静态方法中只允许访问静态数据,那么,如何在静态方法中访问类的实例成员(即没有附加static关键字的字段或方法)?(PPT P42页)

public class Test {
static int n = 200; //静态变量
public static void main(String[] args) {
 New e = new New();
 n = e.Shi(); //将实例变量赋值给静态变量
 New.Jing(n);  
 }
}
class New{
 int m = 100; //实例变量
 int Shi(){
  int x;
  x = m;
  return x;//实例函数,返回一个实例值
  } 
 static void Jing(int x){  
  System.out.println(x); //输出静态变量 
  }
 }

 

 

posted @ 2020-10-11 17:02  鯨落  阅读(68)  评论(0编辑  收藏  举报