在千锋学习的第16天
熬过这段孤独我就是王者!加油
今天我学习了static静态,它主要由以下的特点:
1.静态属性是整个类共同持有的共享空间(一份),任何对象修改,都会影响其他对象。
2.static修饰的成员为静态成员,无需创建对象,可直接通过类名访问。
3.静态方法不能直接访问非静态成员,非静态方法可以访问静态成员。
4.静态方法中不能使用this或super。
5.静态方法可以继承、不能重写、没有多态。
6.静态代码块在类加载时被执行,且只执行一次。
加油中国,加油武汉,加油千锋,加油自己!!!
第一题
- 有如下代码,请输出他的运行结果
class MyClass{
static int a;
int b;
}
public class TestMain{
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);
}
}
输出结果为:.
300
200
300
400
这里运用到了上面的第一个知识点。
2.下面代码中找出错误的部分
class MyClass {
int a;
static int b;
void fa(){}
static void fb0{}
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个知识点
3.输出以下代码的结果
class MyClass {
static int count = 0;
public MyClass0{
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
这里运用到的是第一处和第六处知识点
输出结果为:
In Static MyClass()
20
MyClass(int )
10
这里运用到的是上面第第一处和第六处的知识点
5.如下代码
输出的结果为:
m1.inSuper
m2.in Sub
m1.in sub
m2.in sub
运用到的知识点是上面的第一处第五处和第六处
6.
答案为ACDE
设计-一个类MyClass ,为MyClass增加一个count属性,用来统计总共创建了多少个对象。
package com.qf.day1.statics;
public class Teststaticsum {
public static void main(String[] args) {
// TODO Auto-generated method stub
new Sum();
new Sum();
new Sum();
System.out.println(Sum.count);
}
}
class Sum{
static int count;
public Sum(){
count++;
}
}
欢迎大家指正!