第14讲 权限修饰符和状态修饰符

权限修饰符

修饰符用来定义类、方法或者变量,通常放在语句的最前端。Java中,可以使用权限修饰符(访问控制符)来保护对类、变量、方法和构造方法的访问。
下表中 表示可访问。

修饰符同一个类中同一个包中的子类、无关类不同包的子类不同包的无关类
private(私有的)
默认(空着不写)
protected(受保护的)
public(公共的)

状态修饰符

static

静态的

  • 可以修饰成员变量、成员方法

被static修饰的特点: 被类的所有对象共享

静态的成员方法只能访问静态成员

static修饰成员变量

被static修饰的成员变量叫静态变量

静态变量与对象无关,它随着类的加载而加载的,优先于对象存在

特点: 被该类的所有对象共享(所有对象用同一个值),只有一份

调用方式:

  1. 类名调用(推荐) 类名.静态变量
  2. 对象名调用 对象名.静态变量
public class Student {
    //static修饰成员变量
    public static String university;

	public void show() {
    Sout: university;
	}
}
public class Demo {
    public static void main(String[] args) {
        //类名调用
        Student.university = "**大学";
        
		Student s1 = new Student();
		Student s2 = new Student();
		s1.show();	//**大学
		s2.shou();	//**大学
    }
}

static修饰成员方法

被static修饰的成员方法叫静态方法

多用在测试类和工具类中

调用方式:

  1. 类名调用(推荐) 类名.静态方法
  2. 对象名调用 对象名.静态方法

访问特点

详见static的注意事项

成员方法静态的成员变量非静态的成员变量静态的成员方法非静态的成员方法
非静态的成员方法
静态的成员方法
  1. 静态方法中没有this关键字
  2. 静态方法只能访问静态
  3. 非静态方法可以访问静态与非静态

final

最终的,不可改变的

  • 可以修饰方法、变量、类

final修饰基本数据类型变量

常量:不能再被赋值

public class Student {
	final double PI = 3.14;
    
    PI = 20; //报错,常量:不能再被赋值
}

final修饰引用数据类型变量

对象的地址值不能变,但对象内部的属性值可以改变

public class Student {
	public int age = 20;
}

class Demo {
    final Student s = new Student();
	
    s.age = 100;	//对象内部的属性值可以改变

	s = new Student();//报错,对象的地址值不能变
}

final修饰方法

最终方法:不能再重写

public class Fu {
    public final void show() {
	}
}

public class Zi extends Fu {
    @Override
    public final void show() { //报错,最终方法:不能再重写
	}
}

final修饰类

最终类:不能再作为父类被继承

public final class Fu {
}

public class Zi extends Fu { //报错,最终类:不能再作为父类被继承
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值