发表于: 2017-08-15 23:50:19

2 868


今天学习了

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.接口

这个我只是大概了解,百度上说父类和子类之间的关系就像猫和猫科动物的话,接口就像猫和金属爪,是一种挂载的关系,但是以我目前的经验来看,还是分辨不出他们之间的不同


明天要做的事情接着看


收获

今天其实把很多知识都看了一遍,比如多态,隐藏,对象转型,重写,抽象类,内部类等,但是回想起来总感觉似懂非懂,等我再消化一下,再写这部分内容吧


返回列表 返回列表
评论

    分享到