1.权限修饰符
在这里强调一下 常用 private 私有 和 public 公共 的
private 在同一个类中可以访问
public 在不同包 的无关类中都可以访问
默认 和 protected 受保护的 :
默认 : 同一个包能够访问 出了这个包 就不可以访问了
protected : 同一个能够访问 出了这个包 他的子类可以访问
状态修饰符
1.final 最终的意思 可以修饰成员方法,成员变量,类
public class Fu {
//final 修饰方法 最终方法 不能被重写
public final void method() {
System.out.println("Fu method");
}
}
//最终类 不能被继承
/*
public final class Fu {
public final void method() {
System.out.println("Fu method");
}
}
*/
//Zi 继承 Fu
public class Zi extends Fu {
public final int age = 20;//常量(不能被修改)
public void show() {
// age = 30;
System.out.println(age);
}
// 重写method 不能
// @Override
// public void method() {
// System.out.println("Zi method");
// }
}
/*
测试类
*/
public class Demo {
public static void main(String[] args) {
Zi z = new Zi();
z.method();
z.show();
}
}
final 修饰的特点:
1.修饰方法:表明该方法是最终方法,不能被重写
2.修饰变量:表明该变量是常量,不能再次被赋值
注意:
3.修饰类:表明该类是最终类,不能被继承
不能被继承的类有:String,Scanner,System.....
static关键字:
static使用:
权限修饰符 static 数据类型 变量名;
public class Student {
private String name;
private int age;
// static 使用
private static String classRoom;//班级
public void show(){
System.out.println("名字是:"+name+",年龄是:"+age);
}
public Student() {
}
public Student(String name, int age) {
this.name = name;
this.age = age;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public static String getClassRoom() {
return classRoom;
}
public static void setClassRoom(String classRoom) {
Student.classRoom = classRoom;
}
}
注意:
1.非静态成员变量:随着对象的创建而初始化
随着对象的消亡而消亡
每一个对象,成员变量互相独立操作,互不影响。
那么,多个对象想要共享一个变量的话,就要引入静态成员变量
2.静态变量:
static修饰的变量 叫做 静态变量;
特点:被所有对象所共享
调用时可以 类名.静态变量************
static修饰符的特点:
静态成员方法只能访问静态成员
static修饰方法
可以修饰方法: 静态方法 可以通过类名调用,方法内只能访问static修饰的内容
什么时候变量用static修饰?: 当该变量被所有对象所共享的! 比如:所有的学生,国籍都是中国人 国籍这个变量就应该定义为静态变量 static String country = "中国"; 什么时候方法用static修饰?: 1.如果该方法要被main方法直接调用,或者被静态方法直接调用 2.由于用static修饰的方法可以被类名直接调用(无需创建对象),为了方便起见,用static修饰
static内存图: