权限修饰符+final关键字

本文详细解释了Java中的权限修饰符(public,protected,default,private)的作用,以及final关键字在类、方法、变量和对象上的使用特性,包括不可继承、不可重写和不可二次赋值等。
摘要由CSDN通过智能技术生成

权限修饰符

不同权限的访问能力

publicprotecteddefaultprivate
同类yesyesyesyes
同包不同类yesyesyesno
不同包子父类yesyesnono
不同包非子父类yesnonono

使用

1.属性:用private(封装思想)
2.成员方法public (便于调用)
3.构造public(便于new对象)

final关键字

1.final修饰类

public final class 类名{}

2.特点:
被final修饰的类不能被继承

public final class Animal{
}
public class Dog extends Animal{
}

extends Animal 报错

2.final修饰方法

修饰符 final 返回值类型 方法名(形参){
	方法体;
	return 结果;
}

2.特点:
被final修饰的方法,不能被重写
3.注意:
final和abstract不能同时修饰一个方法(final不能重写,abstract必须重写)

3.final修饰局部变量

final 数据类型 局部变量名 =;

2.特点:
被final修饰的变量不能二次赋值

public class Test01 {
    public static void main(String[] args) {
        final int i = 10;
        //i = 20; 被final修饰的变量不能二次赋值
        
        final int j;
        j = 100;
        //j = 200;
                
    }
}

4.final修饰对象

final 类型 对象名 = new 对象();

2.特点:
被final修饰的对象,地址值不能改变,但是对象中的属性值可以改变

public class Person {
    private String name;
    private int age;

    public Person() {
    }

    public Person(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 class Test02 {
    public static void main(String[] args) {
        //Person p1 = new Person("金莲",26);
        //System.out.println(p1);//地址值
        //p1 = new Person("涛哥",18);
        //System.out.println(p1);//地址值

        final Person p1 = new Person("金莲",26);
        System.out.println(p1);//地址值
        //p1 = new Person("涛哥",18);
        //System.out.println(p1);//地址值

        p1.setName("大郎");
        p1.setAge(30);
        System.out.println(p1.getName()+"..."+p1.getAge());
    }
}

5.final修饰成员变量

final 数据类型 成员变量名 =;

2.特点:
a.需要手动赋值
b.不能二次赋值

public class Student {
    final String name = "广坤";

    public Student() {
    }

    //有参构造现在属于二次赋值了
    /*public Student(String name) {
        this.name = name;
    }*/

    public String getName() {
        return name;
    }
    //set方法现在属于二次赋值了
    /*public void setName(String name) {
        this.name = name;
    }*/
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值