立即学习:https://edu.csdn.net/course/play/24609/274830?utm_source=blogtoedu
static关键字
1.概念
通常情况下成员变量隶属于对象层级,每创建一个对象就需要申请独立的内存空间来存放该对象独立的成员变量信息,若所有对象的某个成员变量数值完全一样却又单独存放会造成内存空间的浪费。
为了解决上述问题,则使用static关键字修饰成员变量表达静态的含义,此时该成员变量由对象层级提升为类层级被所有对象共享,该成员变量随着类的加载准备就绪,与是否创建对象无关。
静态成员的属性和方法可以用对象调用,单一般推荐类名.调用
/*
编程实现Person类的封装
*/
public class Person{
//1。私有化成员变量,使用private关键字修饰
private String name;
private int age;
//private String country; //隶属于对象层级,每个对象都有独立的一份
public static String country; //隶属于类层级,被所有对象共享一份
//2.提供公有的get和set方法,并在方法体中进行合理值的判断
//3.在构造方法中调用set方法进行合理值的判断
public Person(String name,String country,int age){
setName(name);
setAge(age);
setCountry(country);
}
public Person(){}
public String getName(){
return name;
}
public void setName(String name){
this.name = name;
}
public int getAge(){
return age;
}
public void setAge(int age){
if (age >=0 && age <=150){
this.age =age;
}else{
System.out.println("年龄不合适");
}
}
public String getConutry(){
return country;
}
public void setCountry(String country){
this.country =country;
}
public void show(){
System.out.println("我叫"+getName()+"年龄"+getAge()+"国籍"+getConutry());
}
public static void main(String[] ages){
//没创建对象时候,用类名加变量名访问
System.out.println("Person.country="+Person.country);
Person p=new Person("哈哈","大方",100);
p.show();
Person p2=new Person("哈哈","大大",110);
p.country="静态";
System.out.println("国籍"+p2.country);
}
}