枚举(enum)与类的静态成员(static)
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了枚举(enum)与类的静态成员(static)相关的知识,希望对你有一定的参考价值。
枚举(ENUM)与类的静态成员(static)
枚举表示可以计数的一种类型
Gender.java
public enum Gender {
male,
Female,
}
Person.java
public class Person {
String name;
int age;
Gender gender;
static String nation;
/**
* display()显示方法
* */
void display() {
System.out.println(String.format("姓名=%s,年龄=%d,性别=%s,国籍=%s", name, age,
gender, Person.nation));
}
}
test.java
public class test {
public static void main(String[] args) {
// TODO Auto-generated method stub
Person p=new Person();
p.name="Jay Chou";
p.age=30;
p.gender=Gender.Female;
Person.nation="中国";
p.display();
}
}
解析上述中的代码,以及涉及到的方法
static--表示静态类型,它所表示的类或者成员均属于类而不是属于某个对象
例如在Person类中有一nation属性,定义为static类型,这时在主函数测试类中调用该属性时
Person.nation="中国";
使用该类去调用,该nation属性不用static标识时,如果存储了多个人的对象,都同属于一个国家,这是就会出现nation这个字段多次出现,占用内存,使用stati表示nation大家共享一份,不会浪费内存
在display方法中还出现了String.Format方法:表示格式化字符串,该用法为
System.out.println(String.format("姓名=%s,年龄=%d,性别=%s,国籍=%s", name, age,
gender, Person.nation));
- %s-->输出字符串类型
- %d-->输出整型类型(十进制)
- %x-->输出整型类型(十六进制)
- %b-->输出布尔类型
- %c-->输出字符类型
当属性设置为private时,就需要使用set来进行设置属性了(在nation这个属性前添加private)
private static nation;
public static void setNation(String nation){
Person.nation=nation;
}
主函数调用使用
Person.setNation("中国");
访问静态成员时必须使用静态方法
实例成员属于类中的每个实例
运行结果
以上是关于枚举(enum)与类的静态成员(static)的主要内容,如果未能解决你的问题,请参考以下文章