|NO.Z.00057|——————————|BigDataEnd|——|Java&static关键字继承.V17|——|Java.v17|访问控制|final类修饰类|

一、final类修饰类和方法的作用:常用的访问控制符
### --- 注意事项

~~~     ——>        public修饰的成员可以在任意位置使用。
~~~     ——>        private修饰的成员只能在本类内部使用。
~~~     ——>        通常情况下,成员方法都使用public关键字修饰,成员变量都使用private关键字修饰。
### --- package语句的由来

~~~     ——>        定义类时需要指定类的名称,但如果仅仅将类名作为类的唯一标识,
~~~     ——>        则不可避免的出现命名冲突的问题。这会给组件复用以及团队间的合作造成很大的麻烦!
~~~     ——>        在Java语言中,用包(package)的概念来解决命名冲突的问题。
### --- 包的定义

~~~     ——>        在定义一个类时,除了定义类的名称一般还要指定一个包名,格式如下:
~~~     ——>        package 包名;
~~~     ——>        package 包名1.包名2.包名3...包名n;
~~~     ——>        为了实现项目管理、解决命名冲突以及权限控制的效果。
### --- 定义包的规范

~~~     ——>        如果各个公司或开发组织的程序员都随心所欲的命名包名的话,
~~~     ——>        仍然不能从根本上解决命名冲突的问题。因此,在指定包名的时候应该按照一定的规范。
~~~     ——>        org.apache.commons.lang.StringUtil
~~~     ——>        其中StringUtils是类名而org.apache.commons.lang是多层包名,
~~~     ——>        其含义如下:org.apache表示公司或组织的信息(是这个公司(或组织)域名的反写);
~~~     ——>        common 表示项目的名称信息;lang 表示模块的名称信息。
### --- 包的导入

~~~     ——>        使用import关键字导入包。
~~~     ——>        使用import关键字导入静态成员,从Java5.0开始支持。
### --- 基本概念

~~~     ——>        final本意为"最终的、不可改变的",可以修饰类、成员方法以及成员变量。
### --- 使用方式

~~~     ——>        final关键字修饰类体现在该类不能被继承。
~~~     ——>            主要用于防止滥用继承,如:java.lang.String类等。
~~~     ——>        final关键字修饰成员方法体现在该方法不能被重写但可以被继承。
~~~     ——>            主要用于防止不经意间造成重写,如:java.text.Dateformat类中format方法等。
~~~     ——>        final关键字修饰成员变量体现在该变量必须初始化且不能改变。
~~~     ——>            主要用于防止不经意间造成改变,如:java.lang.Thread类中MAX_PRIORITY等。
### --- 常量的概念

~~~     ——>        在以后的开发中很少单独使用final关键字来修饰成员变量,
~~~     ——>        通常使用public static final关键字共同修饰成员变量来表达常量的含义,
~~~     ——>        常量的命名规范要求是所有字母都要大写,不同的单词之间采用下划线连。
~~~     ——>        public static final double PI = 3.14;
二、编程代码
package com.yanqi.task08;

public class SubFinalClass extends FinalClass {

    /*@Override
    public void show() {
        super.show();
    }*/

    public static void main(String[] args) {
        SubFinalClass sfc = new SubFinalClass();
        sfc.show();
    }
}
三、编程代码
package com.yanqi.task08;

// ctrl+shift+/  进行选中内容的多行注释 ,再来一次取消注释
// ctrl+/        进行当前行的单行注释 ,再来一次取消注释
public /*final*/ class FinalClass {

    public final void show() {
        System.out.println("FinalClass类中的show方法!");
    }

}
四、编程代码
package com.yanqi.task08;

public class FinalMemberTest {
    //    private final int cnt = 1; // 显式初始化
    private final int cnt;

    /*{
        cnt = 2;  // 构造块中进行初始化
    }*/

    public FinalMemberTest() {
        cnt = 3; // 构造方法体中进行初始化
    }

    public static void main(String[] args) {

        // 声明FinalMemberTest类型的引用指向该类的对象
        FinalMemberTest fmt = new FinalMemberTest();
        // 打印成员变量的数值
        System.out.println("fmt.cnt = " + fmt.cnt); // 0  1  2  3
    }
}
五、编译打印
D:\JAVA\jdk-11.0.2\bin\java.exe "-javaagent:D:\IntelliJIDEA\IntelliJ IDEA 2019.3.3\lib\idea_rt.jar=50360:D:\IntelliJIDEA\IntelliJ IDEA 2019.3.3\bin" -Dfile.encoding=UTF-8 -classpath E:\NO.Z.10000——javaproject\NO.H.00001.javase\javase\out\production\javase com.yanqi.task08.SubFinalClass
FinalClass类中的show方法!

Process finished with exit code 0

 
 
 
 
 
 
 
 
 

Walter Savage Landor:strove with none,for none was worth my strife.Nature I loved and, next to Nature, Art:I warm'd both hands before the fire of life.It sinks, and I am ready to depart
                                                                                                                                                   ——W.S.Landor

 

 

posted on   yanqi_vip  阅读(21)  评论(0编辑  收藏  举报

相关博文:
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

导航

统计

点击右上角即可分享
微信分享提示