8.面向对象进阶(2)

文章目录

  • 1.包
    • 1.1 包
    • 1.2 导包
  • 2. final
  • 3. 权限修饰符
    • 3.1 权限修饰符
    • 3.2 不同权限的访问能力
  • 4.代码块

1.包

1.1 包

​ 包在操作系统中其实就是一个文件夹。包是用来分门别类的管理技术,不同的技术类放在不同的包下,方便管理和维护。

在IDEA项目中,建包的操作如下:

8.面向对象进阶(2)_第1张图片

包名的命名规范**:

路径名.路径名.xxx.xxx
// 例如:com.itheima.oa
  • 包名一般是公司域名的倒写。例如:黑马是www.itheima.com,包名就可以定义成com.itheima.技术名称。
  • 包名必须用”.“连接。
  • 包名的每个路径名必须是一个合法的标识符,而且不能是Java的关键字。

1.2 导包

8.面向对象进阶(2)_第2张图片

2. final

Java提供了final 关键字,表示修饰的内容不可变。

  • final: 不可改变,最终的含义。可以用于修饰类、方法和变量。
    • 类:被修饰的类,不能被继承。
    • 方法:被修饰的方法,不能被重写。
    • 变量:被修饰的变量,有且仅能被赋值一次。

8.面向对象进阶(2)_第3张图片

修饰类:final修饰的类,不能被继承。

final class 类名 {
}

修饰方法:final修饰的方法,不能被重写。

修饰符 final 返回值类型 方法名(参数列表){
    //方法体
}

//例子
class Fu2 {
	final public void show1() {
		System.out.println("Fu2 show1");
	}
	public void show2() {
		System.out.println("Fu2 show2");
	}
}

class Zi2 extends Fu2 {
//	@Override
//	public void show1() {
//		System.out.println("Zi2 show1");
//	}
	@Override
	public void show2() {
		System.out.println("Zi2 show2");
	}
}


修饰变量

public class Test {
    public static void main(String[] args) {
        /*
            final 修改基本数据类型:记录的值不能发生改变
            final 修饰引用数据类型:记录的地址值不能发生改变,内部的属性值还是可以改变的

            核心:
                常量记录的数据是不能发生改变的。


             字符串是不可变的

        */
        
        final double PI = 3.14;

        //创建对象
        final Student S = new Student("zhangsan",23);
        //记录的地址值不能发生改变,内部的属性值还是可以改变的
        //S = new Student();
        S.setName("李四");
        S.setAge(24);
        System.out.println(S.getName() + ", " + S.getAge());


        //数组
        final int[] ARR = {1,2,3,4,5};
        //ARR = new int[10];
        ARR[0] = 10;
        ARR[1] = 20;

        //遍历数组
        for (int i = 0; i < ARR.length; i++) {
            System.out.println(ARR[i]);
        }
    }
}

3. 权限修饰符

3.1 权限修饰符

​ 在Java中提供了四种访问权限,使用不同的访问权限修饰符修饰时,被修饰的内容会有不同的访问权限,我们之前已经学习过了public 和 private,接下来我们研究一下protected和默认修饰符的作用。

  • public:公共的,所有地方都可以访问。

  • protected:本类 ,本包,其他包中的子类都可以访问。

  • 默认(没有修饰符):本类 ,本包可以访问。

    注意:默认是空着不写,不是default

  • private:私有的,当前类可以访问。
    public > protected > 默认 > private

3.2 不同权限的访问能力

public protected 默认 private
同一类中
同一包中的类
不同包的子类
不同包中的无关类

可见,public具有最大权限。private则是最小权限。

编写代码时,如果没有特殊的考虑,建议这样使用权限:

  • 成员变量使用private ,隐藏细节。
  • 构造方法使用 public ,方便创建对象。
  • 成员方法使用public ,方便调用方法。

小贴士:不加权限修饰符,就是默认权限

4.代码块

1.代码块的分类:局部代码块,构造代码块,静态代码块

2.局部代码块的作用:提前结束变量的生命周期(已淘汰)

3.构造代码块的作用:抽取构造方法中的重复代码(不够灵活)

4.静态代码块的作用数据的初始化(重点)

静态代码块

格式: static{}

特点∶需要通过static关键字修饰,随着类的加载而加载,并且自动触发、只执行一次

使用场景:在类加载的时候,做一些数据初始化的时候使用。

你可能感兴趣的:(2023java,java,jvm,c#)