概述
文章目录
- 1.包
- 1.1 包
- 1.2 导包
- 2. final
- 3. 权限修饰符
- 3.1 权限修饰符
- 3.2 不同权限的访问能力
- 4.代码块
1.包
1.1 包
包在操作系统中其实就是一个文件夹。包是用来分门别类的管理技术,不同的技术类放在不同的包下,方便管理和维护。
在IDEA项目中,建包的操作如下:
包名的命名规范**:
路径名.路径名.xxx.xxx
// 例如:com.itheima.oa
- 包名一般是公司域名的倒写。例如:黑马是www.itheima.com,包名就可以定义成com.itheima.技术名称。
- 包名必须用”.“连接。
- 包名的每个路径名必须是一个合法的标识符,而且不能是Java的关键字。
1.2 导包
2. final
Java提供了final
关键字,表示修饰的内容不可变。
- final: 不可改变,最终的含义。可以用于修饰类、方法和变量。
- 类:被修饰的类,不能被继承。
- 方法:被修饰的方法,不能被重写。
- 变量:被修饰的变量,有且仅能被赋值一次。
修饰类: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关键字修饰,随着类的加载而加载,并且自动触发、只执行一次
使用场景:在类加载的时候,做一些数据初始化的时候使用。
最后
以上就是明亮鸭子为你收集整理的8.面向对象进阶(2)1.包2. final3. 权限修饰符4.代码块的全部内容,希望文章能够帮你解决8.面向对象进阶(2)1.包2. final3. 权限修饰符4.代码块所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复