为什么要有类的静态成员呢,就是有些属性和方法假设是每个类对象都有的,且不随某个对象改动而改动,就可以声明为静态成员
static关键字
- 使用static关键字来实现类级别的变量和函数
- 静态方法不能访问非静态成员,非静态方法可以访问静态成员
示例代码
public class Student {
static String name = "张三";
String score;
//定义类静态方法,类可直接调用,类对象不能调用
public static void printInfo(){
System.out.println(name);
}
//定义普通方法,需要类对象才能调用,类不能直接调用
public void report(){
System.out.println("姓名:"+name+",分数:"+score);
}
}
class TestDemo {
public static void main(String[] args) {
//类直接调用静态属性
System.out.println(Student.name);
//类直接调用静态方法
Student.printInfo();
}
}
instanceof操作符
用instanceof来检验xx对象是否是某个类的实例
示例代码:
public class Student extends Person{
static String name = "张三";
String score;
//定义类静态方法,类可直接调用,类对象不能调用
public static void printInfo(){
System.out.println(name);
}
//定义普通方法,需要类对象才能调用,类不能直接调用
public void report(){
System.out.println("姓名:"+name+",分数:"+score);
}
}
class Person{
public void printAge(){
System.out.println("年年18岁");
}
}
class TestDemo {
public static void main(String[] args) {
Student student = new Student();
//判断student是不是Person的实例,防止下一步强转出错
if (student instanceof Person){
Person p = (Person)student;
p.printAge();
}
}
}
强转就是在对象前面加(类名)
网友评论