千锋逆战班黄紫霄20200224

在千锋“逆战”学习第16天

      作为一个真正的程序员,首先应该尊重编程,热爱你所写下的程序,他是你的伙伴,而不是工具。
      今天学习了静态属性、静态方法、类加载和静态代码块。
      明天继续努力,和对抗疫情的医护工作一样,再难也不放弃。

作业

1.输出代码运行结果

public class TestMain {
     
	public static void main(String[] args) {
     
		MyClass mc1 = new MyClass();
		MyClass mc2 = new MyClass();
		mc1.a = 100;
		mc2.b = 200;
		mc2.a = 300;
		mc2.b = 400;
		System.out.println(mc1.a);
		System.out.println(mc1.b);
		System.out.println(mc2.a);
		System.out.println(mc2.b);
	}
}

class MyClass{
     
	static int a;
	int b;
}

运行结果:
      300
      200
      300
      400

---------------------------------------------------------------------------------
2.以下代码哪些行会编译出错

public class MyClass {
     
	int a;
	static int b;
	void fa() {
     }
	static void fb() {
     }
	public void m1() {
     
		System.out.println(a);//1
		System.out.println(b);//2
		fa();//3
		fb();//4
	}
	public static void m2() {
     
		System.out.println(a);//5
		System.out.println(b);//6
		fa();//7
		fb();//8
	}
}

答案://5、//7出错,静态方法不能访问非静态成员

---------------------------------------------------------------------------------
3.输出代码运行结果

class MyClass{
     
	static int count = 0;
	public MyClass() {
     
		count++;
		System.out.println(count);
	}
}
public class TestMain {
     
	public static void main(String[] args) {
     
		MyClass mc1 = new MyClass();
		MyClass mc2 = new MyClass();
		MyClass mc3 = new MyClass();
	}
}

运行结果:
      1
      2
      3

---------------------------------------------------------------------------------
4.输出代码运行结果

class MyClass{
     
	static int i=0;
	static {
     
		i=20;
		System.out.println("In Static");
	}
	public MyClass() {
     
		System.out.println("MyClass()");
	}
	public MyClass(int i) {
     
		System.out.println("MyClass(int)");
		this.i = i;
	}
}

public class TestMain {
     
	public static void main(String[] args) {
     
		MyClass mc1 = new MyClass();
		System.out.println(mc1.i);
		MyClass mc2 = new MyClass();
		System.out.println(mc2.i);
	}
}

运行结果:
      In Static
      MyClass()
      20
      MyClass()
      20

---------------------------------------------------------------------------------
5.输出代码运行结果

class Super{
     
	public static void m1() {
     
		System.out.println("m1 in Super");
	}
	public void m2() {
     
		System.out.println("m2 in Super");
	}
}

class Sub extends Super{
     
	public static void m1() {
     
		System.out.println("m1 in Sub");
	}
	public void m2() {
     
		System.out.println("m2 in Sub");
	}
}

public class TestMain {
     
	public static void main(String[] args) {
     
		Super sup = new Sub();
		sup.m1();
		sup.m2();
		Sub sub = new Sub();
		sub.m1();
		sub.m2();
	}
}

运行结果:
      m1 in Super
      m2 in Sub
      m1 in Sub
      m2 in Sub

---------------------------------------------------------------------------------
6.以下哪些是正确的
      A.静态方法中不能调用非静态方法      (正确)
      B.非静态方法中不能调用静态方法      (错误,可以调用)
      C.静态方法不能被覆盖      (正确)
      D.静态方法能够用类名直接调用      (正确)
      E.可以在不产生任何一个对象的情况下调用静态方法      (正确)
      F.静态方法可以使用this      (错误,this,super都不能用)

---------------------------------------------------------------------------------
15.设计一个MyClass类,为MyClass类增加一个count属性,用来统计总共创建多少个对象

class MyClass{
     
	static int count;
	public MyClass() {
     
		count++;
	}
}

public class TestMain {
     
	public static void main(String[] args) {
     
		MyClass m1 = new MyClass();
		MyClass m2 = new MyClass();
		MyClass m3 = new MyClass();
		MyClass m4 = new MyClass();
		System.out.println("总共创建"+MyClass.count+"个对象");
	}
}

运行结果:
运行结果

课堂笔记:

千锋逆战班黄紫霄20200224_第1张图片
千锋逆战班黄紫霄20200224_第2张图片

课堂代码:

静态代码块
千锋逆战班黄紫霄20200224_第3张图片
千锋逆战班黄紫霄20200224_第4张图片
千锋逆战班黄紫霄20200224_第5张图片
千锋逆战班黄紫霄20200224_第6张图片
静态方法
千锋逆战班黄紫霄20200224_第7张图片
静态方法 结果
静态继承
千锋逆战班黄紫霄20200224_第8张图片
静态应用
千锋逆战班黄紫霄20200224_第9张图片
静态应用1 结果
千锋逆战班黄紫霄20200224_第10张图片
静态应用2 结果

你可能感兴趣的:(作业)