/*
* static修饰成员方法
*
* 格式:
* 权限修饰符 static 返回值类型 方法名(形式参数列表){
* // 方法体;
* }
*
* 【重点】
* 用static修饰的成员方法,称之为【静态成员方法】,这个【静态成员方法】是早于对象的创建而【加载】
* 对象销毁之后仍然存在
*
* 所以说:【静态成员方法】和对象“无关”
*
* 如果采用类对象调用【静态成员方法】会报警告
* 应该直接使用静态的方式来调用
*
* 【注意事项】
* 1. 在静态方法中不能用this关键字
* 推论:
* 因为【静态成员方法】可以通过类名来调用,用雷鸣调用的情况下,是不存在对象的,而this关键字
* 是用来表示调用该方法的对象关键字,这里不存在对象,所以不能用。
* 【没有对象】
*
* 2. 在static修饰的【静态成员方法】中,不能使用【非静态成员变量】,因为【非静态成员变量】是保存在类对象
* 的【堆区】内存中,和类对象共存,而在【静态成员方法】的调用过程中是没有对象的,所以不能使用【非静态成员变量】
*
* 3. 想在【静态成员方法】中使用非静态成员变量
* 在当前【静态成员方法】中使用new关键字,调用构造方法,创建一个对象,使用该对象,
* 案例:
* 单例设计模式
* 【总结】
* 静态对静态,非静态对非静态
*
* 【静态成员方法用途】
* 1. 调用方便
* 2. 用来完成一些【工具类】
*
* */
class Dog{
// 成员变量
private String name;
// 静态成员变量
static String country = "JP";
// 构造方法
public Dog(){}
public Dog(String name){
this.name = name; // JSP
}
// setter 和 getter方法
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
// 成员方法
public void run(){
this.name = "110"; // 使用this关键字调用非静态成员变量
name = "112"; // 非静态成员变量
country = "Janp"; // 静态成员变量
System.out.println("跑来跑去");
}
public static void sleep(){
country = "RB"; // 静态成员变量
// name = "003"; // 这个会报错
System.out.println("睡大觉");
}
// 在静态方法中创建对象
public static void test(){
Dog dog = new Dog("狗子");
System.out.println(dog.name);
}
}
public class static修饰成员方法 {
public static void main(String[] args) {
Dog dog = new Dog("Bobo");
// dog.sleep(); // 这个出现警告
Dog.sleep(); // 推荐使用这种方式进行调用
}
}
Java中static修饰成员变量
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
推荐阅读更多精彩内容
- 如果文章对你有所帮助,请点喜欢并关注,这将是我最大的动力,谢谢 PS:这里的普通方法和成员变量是指,非静态方法和非...
- 我想对于每个Java程序员来说,接口都不陌生,接口中的方法也经常使用。而接口中的成员变量,就显得用得少一点,而对于...
- 往往最简单的,就是最重要的。 类修饰符: public(访问控制符)将一个类声明为公共类,他可以被任何对象访问,一...
- final称为常量,static final称为全局常量。 成员变量是随类初始化或对象初始化而初始化的。当类初始化...