静态属性和方法理解
2016-04-04 15:32
267 查看
public class Car {
//实例属性,其属于对象,每个对象都有一份独立的拷贝,用来保存这个对象个性化的特征。
String brand;
Integer price;
//静态属性属于类本身,属于模具,只要类被加载了,该属性的空间就会被开辟,而这个时候,对象还没有构建。
//静态属性属于类,只有一份拷贝,为这个类所有的实例所共享,该属性开辟在静态区中。
static int count;
public Car(){
System.out.println("car constructor is invoked!");
count++;
}
void run(){
System.out.println("一辆售价为"+this.price+"的"+this.brand+"品牌的汽车在奔驰!");
}
//实例方法能够调用静态属性,因为实例方法只能实例存在的时候才能调用,而这个时候,类已经被加载了,静态变量空间早就开辟了。
//所有实例方法是可以访问静态属性的。
//实例方法只能通过引用变量来调用。
void test(){
Car.count=Car.count+2; //实例方法可以访问静态变量,因为实例方法调用的时候,对象已经有了,类早就加载了。
Car.showInfo(); //实例方法可以访问静态方法 //推论:实例方法可能访问任何静态的数据,比如静态属性和方法。
//静态方法或者属性访问的时候,为了提高效率,避免代码阅读上的误解,建议直接用类名来访问。
}
//静态方法属于类本身,只要类被加载,该方法就能调用了,而不需要实例的存在。
static void showInfo(){
System.out.println("static method is invoked now!");
// price =100000; //静态方法不能访问实例变量,因为静态方法能够被调用的时候,对象可能还没构建,不会拥有实例属性。
//run(); //静态方法不能访问实例方法,原因同上,因为实例方法只有对象才能调用。
//推论: 静态方法不能访问任何实例存在才能够进行的操作,比如实例属性和方法。
}
}
//实例属性,其属于对象,每个对象都有一份独立的拷贝,用来保存这个对象个性化的特征。
String brand;
Integer price;
//静态属性属于类本身,属于模具,只要类被加载了,该属性的空间就会被开辟,而这个时候,对象还没有构建。
//静态属性属于类,只有一份拷贝,为这个类所有的实例所共享,该属性开辟在静态区中。
static int count;
public Car(){
System.out.println("car constructor is invoked!");
count++;
}
void run(){
System.out.println("一辆售价为"+this.price+"的"+this.brand+"品牌的汽车在奔驰!");
}
//实例方法能够调用静态属性,因为实例方法只能实例存在的时候才能调用,而这个时候,类已经被加载了,静态变量空间早就开辟了。
//所有实例方法是可以访问静态属性的。
//实例方法只能通过引用变量来调用。
void test(){
Car.count=Car.count+2; //实例方法可以访问静态变量,因为实例方法调用的时候,对象已经有了,类早就加载了。
Car.showInfo(); //实例方法可以访问静态方法 //推论:实例方法可能访问任何静态的数据,比如静态属性和方法。
//静态方法或者属性访问的时候,为了提高效率,避免代码阅读上的误解,建议直接用类名来访问。
}
//静态方法属于类本身,只要类被加载,该方法就能调用了,而不需要实例的存在。
static void showInfo(){
System.out.println("static method is invoked now!");
// price =100000; //静态方法不能访问实例变量,因为静态方法能够被调用的时候,对象可能还没构建,不会拥有实例属性。
//run(); //静态方法不能访问实例方法,原因同上,因为实例方法只有对象才能调用。
//推论: 静态方法不能访问任何实例存在才能够进行的操作,比如实例属性和方法。
}
}
相关文章推荐
- java对世界各个时区(TimeZone)的通用转换处理方法(转载)
- java-注解annotation
- java-模拟tomcat服务器
- java-用HttpURLConnection发送Http请求.
- java-WEB中的监听器Lisener
- Android IPC进程间通讯机制
- Android Native 绘图方法
- Android java 与 javascript互访(相互调用)的方法例子
- 介绍一款信息管理系统的开源框架---jeecg
- 聚类算法之kmeans算法java版本
- java实现 PageRank算法
- PropertyChangeListener简单理解
- c++11 + SDL2 + ffmpeg +OpenAL + java = Android播放器
- 插入排序
- 冒泡排序
- 堆排序
- 快速排序
- 二叉查找树