发表于: 2017-08-15 23:50:19
2 870
今天学习了
1.静态方法和静态属性(static)
1)静态属性
public class PracticeOfJava {
public String name;//实例属性,非静态属性,对象属性
static public String company="我是欧洲人";//静态属性,类属性
void game(){}//一个方法
public static void main(String[] args) {
PracticeOfJava garen = new PracticeOfJava();
garen.name = "garen";
PracticeOfJava.company="我来自非洲";
System.out.print(garen.company);
PracticeOfJava any=new PracticeOfJava();
System.out.print(any.company);
//如果一个属性声明成类属性,那么所有的对象,都共享这么一个值
//访问类对象的的方式可以用1.对象.类属性(garen.company)也可以用类.类属性( PracticeOfJava.company),一般是用第二种
}
}
即静态属性为类的公共属性
2).静态方法
public class StaticMethod {
String name;
public void hero(){//对象方法,实例方法,必须有对象才能调用
System.out.println("有对象才能调用");
}
public static void Hero(){//类方法,静态方法,可以通过类直接调用
System.out.println("可以通过类直接调用");
}
public static void main(String[] args){
StaticMethod xiaoming=new StaticMethod();
xiaoming.hero();
// StaticMethod.hero();不能调用
StaticMethod.Hero();//可以调用
}
}
静态方法可以通过类直接调用,也可以通过对象调用,而实例方法只可以通过对象调用
2.属性的初始化
对象属性的初始化有三种方式1)直接声明2)在块内声明3)在构造方法内声明
public class PropertyInitialization {
public String name =PropertyInitialization.getName("属性声明") ;
public PropertyInitialization(){
name = PropertyInitialization.getName("构造方法");
}
{
name = PropertyInitialization.getName("初始化块");
}}
其中声明的优先度分别是直接声明,在块中声明,构造方法内声明
静态属性的初始化有两种方式1.直接声明2.在静态块内声明
public static int itemCapacity=8; //声明的时候初始化
static{
itemCapacity = 6;//静态初始化块块初始化
}
4.接口
这个我只是大概了解,百度上说父类和子类之间的关系就像猫和猫科动物的话,接口就像猫和金属爪,是一种挂载的关系,但是以我目前的经验来看,还是分辨不出他们之间的不同
明天要做的事情接着看
收获
今天其实把很多知识都看了一遍,比如多态,隐藏,对象转型,重写,抽象类,内部类等,但是回想起来总感觉似懂非懂,等我再消化一下,再写这部分内容吧
评论