1.static是一个公共的属性概念,static属性与非static属性的最大区别:所以非static属性只有产生实例化对象才可以访问,但是static属性不受实例化对象的控制。
class codeBook{
private String title;
private double price;
static String pub= "清华大学出版社";
public codeBook(String title,double price){
this.title=title;
this.price=price;
}
public String getInfo(){
return "图书名称:"+title+",价钱:"+price+",出版社:"+pub;
}
}
public class staticWord {
public static void main(String[] args) {
// codeBook c1=new codeBook("java开发",55.5);
// codeBook c2=new codeBook("java开发",55.5);
//c1.pub="齐鲁工业出版社";
// System.out.println(c1.getInfo());
//System.out.println(c2.getInfo());
System.out.println(codeBook.pub);
codeBook.pub="齐鲁工业大学出版社";
codeBook c1=new codeBook("第一行代码",10.2);
System.out.println(c1.getInfo());
}
}
2.static修饰的方法也不受实例化对象的控制;static方法只能调用static属性或方法;static如果想使用非static的方法必须产生对象才可以调用
class Ipad{
private String title;
private double price;
private static String factory="深圳富士康";
public Ipad(String title,double price){
this.title=title;
this.price=price;
}
public static void setFactory(String p){
factory=p;
}
public String getInfo(){
return "ipad名称:"+title+",价格:"+price+",出版社:"+factory;
}
}
public class StaticWord2 {
public static void main(String[] args) {
Ipad.setFactory("郑州富士康");//未实例化调用static方法
Ipad ipad1=new Ipad("iPad2018",3118);
Ipad ipad2=new Ipad("iPad2017",2688);
System.out.println(ipad1.getInfo());
System.out.println(ipad2.getInfo());
}
}
运行结果: