声明static关键字作用
程序员文章站
2022-03-31 08:20:35
static关键字,主要可以用来定义属性与方法。static定义属性:在一个类之中,所有的属性一旦定义了实际上都由各自的堆内存所保存//定义一个程序类class Person{//创建所有同一个国家的类private String name;private int age;String country = "中华民国";public Person(String name,int age){//把值传递给私有变量this.name = name;this.age=ag...
static关键字,主要可以用来定义属性与方法。
static定义属性:
在一个类之中,所有的属性一旦定义了实际上都由各自的堆内存所保存
//定义一个程序类
class Person{ //创建所有同一个国家的类
private String name;
private int age;
String country = "中华民国";
public Person(String name,int age){//把值传递给私有变量
this.name = name;
this.age=age;
}
public String getInfo(){//返回信息方法
return "姓名"+this.name
+"、年龄"+this.age
+"、国家"+this.country;
}
}
public class javaDemo{
public static void main(String[] args){//实例化对象并输出
Person PerA = new Person("张三",10);
Person PerB = new Person("李四",20);
Person PerC = new Person("王五",30);
System.out.println(PerA.getInfo());
System.out.println(PerB.getInfo());
System.out.println(PerC.getInfo());
}
}
在正常开发过程中每一个对象要保存有各自的属性,所以此时的程序并没有问题。
如果有一天国家改名为:“*”,操作起来会非常繁琐。
- 重复保存
- 修改不便
解决方案,将country修改为公共属性,使用static。
class Person{ //创建所有同一个国家的类
private String name;
private int age;
static String country = "中华民国";//已修改
public Person(String name,int age){//把值传递给私有变量
this.name = name;
this.age=age;
}
public String getInfo(){//返回信息方法
return "姓名"+this.name
+"、年龄"+this.age
+"、国家"+this.country;
}
}
public class javaDemo{
public static void main(String[] args){//实例化对象并输出
Person PerA = new Person("张三",10);
Person PerB = new Person("李四",20);
Person PerC = new Person("王五",30);
Person.country = "*";
System.out.println(PerA.getInfo());
System.out.println(PerB.getInfo());
System.out.println(PerC.getInfo());
}
}
对于static属性的访问需要注意:由于其本身是一个公共的属性,虽然可以通过对象进行访问, 但是最好是通过所有对象最高代表来访问(类)。所有static属性可以有类名称直接调用。
static可以在没有实例化对象的时候使用。
例:
class Person{ //创建所有同一个国家的类
private String name;
private int age;
static String country = "中华民国";//已修改
public Person(String name,int age){//把值传递给私有变量
this.name = name;
this.age=age;
}
public String getInfo(){//返回信息方法
return "姓名"+this.name
+"、年龄"+this.age
+"、国家"+this.country;
}
}
public class javaDemo{
public static void main(String[] args){//实例化对象并输出
//不实例化对象直接调用
System.out.print(Person.country);
Person.country = "中国";
Person PerA= new Person("张三",21);
System.out.print(PerA.getInfo());
}
}
总结:
1. 在以后进行类设计的时候首选的一定是非static属性,公共信息存储才会使用到static.
2. 非static属性需要在对象产生后才可以使用,而static不需要。
本文地址:https://blog.csdn.net/weixin_46245201/article/details/109588496
下一篇: 今天的菜你可以选择