当前位置:   article > 正文

学习记录分享_5. 设计一个类myclass,为myclass 增加一个count 成员变量,用来统计总共创建了多

5. 设计一个类myclass,为myclass 增加一个count 成员变量,用来统计总共创建了多少

static修饰符
1.

public class Test01 {
	public static void main(String[] args) {
		MyClass mc1 = new MyClass();
		MyClass mc2 = new MyClass();
		mc1.a = 100;
		mc1.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;
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18

输出:
300
200
300
400
a是静态属性,是整个类共同持有的共享空间,任何对象修改,都会影响其他对象。

在这里插入图片描述
在这里插入图片描述
5 7
5报错是因为a是非静态属性,而m2方法是静态方法,静态方法无法访问非静态属性,所以无法访问到a
7报错是因为fa方法是非静态方法,而m2方法是静态方法,静态方法无法调用非静态方法,所以无法调用fa方法

public class Test03 {
	public static void main(String[] args) {
		MyClass mc1 = new MyClass();
		MyClass mc2 = new MyClass();
		MyClass mc3 = new MyClass();
	}
}
class MyClass{
	static int count = 0;
	public MyClass() {
		count++;
		System.out.println(count);
	}
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14

输出:
1
2
3

public class Test04 {
	public static void main(String[] args) {
		MyClass mc1 = new MyClass();
		System.out.println(mc1.i);
		MyClass mc2 = new MyClass(10);
		System.out.println(mc2.i);
	}
}
class MyClass{
	static int i = 10;
	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;
	}
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22

输出:
In Static
MyClass()
20
MyClass(int)
10

public class Test05 {
	public static void main(String[] args) {
		Super sup = new Sub();
		sup.m1();
		sup.m2();
		Sub sub = (Sub)sup;
		sub.m1();
		sub.m2();
	}
}
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");
	}
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26

输出:
m1 in Super
m2 in Sub
m1 in Sub
m2 in Sub

在这里插入图片描述
ACDE

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

public class Test15 {

}
class MyClass{
	static int count = 0;
	public MyClass() {
		count++;
		System.out.println(count);
	}
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小桥流水78/article/detail/961539
推荐阅读
相关标签
  

闽ICP备14008679号