Static关键字
Posted dododo70
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Static关键字相关的知识,希望对你有一定的参考价值。
static 定义属性:
1. static 定义后的属性,相当于该类的所有对象的公共属性,如果某个对象对这个属性进行修改,将会波及其他的对象
2. static 定义的属性可由类名称直接调用
3. 非 static 定义的属性需要实例化对象之后才能访问,而 static 属性不受实例化对象的控制,在没有实例化对象产生的时候,也是可以使用的(类名.属性)
public class Demo{ public static void main(String args[]){ Book bk1 = new Book("Java入门到放弃",58.98); Book bk2 = new Book("CSS禅意花园",79.99); //改变bk2的pub属性 bk2.pub = "北京大学出版社"; System.out.println(bk1.getInfo()); System.out.println(bk2.getInfo()); } } class Book{ private String title; private double price; //定义一个出版社属性 String pub = "清华大学出版社"; public Book(){} public Book(String title, double price){ this.title = title; this.price = price; } public void setTitle(String title){ this.title = title; } public void setPrice(double price){ this.price = price; } public String getTitle(){ return this.title; } public double getPrice(){ return this.price; } public String getInfo(){ return "title = " + this.title + " " + "price = " + this.price + " " + "publish = " + this.pub; } } /*----------------------------------------- E:Javacode>java Demo title = Java入门到放弃 price = 58.98 publish = 清华大学出版社 title = CSS禅意花园 price = 79.99 publish = 北京大学出版社 E:Javacode>*/
以上的代码将 String pub = "清华大学出版社" 前面加上 static 属性,则 pub 属性将会变成该类实例化的对象们所共有的属性,如果一个对象对这个 pub 属性进行操作,那么其他的对象的 pub 属性也会发生相应的改变
public class Demo{ public static void main(String args[]){ Book bk1 = new Book("Java入门到放弃",58.98); Book bk2 = new Book("CSS禅意花园",79.99); //改变bk2的pub属性 bk2.pub = "北京大学出版社"; System.out.println(bk1.getInfo()); System.out.println(bk2.getInfo()); } } class Book{ private String title; private double price; //定义一个出版社属性 static String pub = "清华大学出版社"; public Book(){} public Book(String title, double price){ this.title = title; this.price = price; } public void setTitle(String title){ this.title = title; } public void setPrice(double price){ this.price = price; } public String getTitle(){ return this.title; } public double getPrice(){ return this.price; } public String getInfo(){ return "title = " + this.title + " " + "price = " + this.price + " " + "publish = " + this.pub; } } /*----------------------------------------- E:Javacode>java Demo title = Java入门到放弃 price = 58.98 publish = 北京大学出版社 title = CSS禅意花园 price = 79.99 publish = 北京大学出版社 E:Javacode>*/
static 定义方法:
1. static 定义的属性和方法都不受实例化对象的控制,都属于独立类的功能
2. static 方法不能直接访问非 static 属性或者方法,只能调用 static 属性和方法
3. 非 static 方法可以访问 static 的属性或方法, 要调用非 static 方法必须要先实例化对象
以上是关于Static关键字的主要内容,如果未能解决你的问题,请参考以下文章