首页 > 编程语言 >java补充知识:权限修饰符&代码块&抽象类

java补充知识:权限修饰符&代码块&抽象类

时间:2023-02-06 17:36:22浏览次数:52  
标签:java 子类 代码 修饰符 抽象 使用 抽象类 方法

目录

final

最终的——>不可变的。

修饰方法

最终方法,不可被子类重写。

如果方法是一个规则,那么使用final修饰!

修饰类

最终类,不能被继承。

没有子类。

如String类。

在源码中常用,但自己使用并不常用。

变量

称常量,只能被赋值1次。

常被使用。且变量被final修饰时,必须即刻被赋值。

final int i = 3;//final int i;,试图之后赋值是不行的

常量的使用细则

其中,命名规范中的下划线,是定义常量时特有的符号。不在定义变量、函数时使用。

PI
NUM_PI

权限修饰符的分类

自己使用 < 自己使用&本包中可以使用 < 自己使用&本包中可以使用&其他包中也可以使用 < 全部可以使用

private:只能自己使用。

默认(空白):最多只能在本包中使用。

protected:最多其他包中也能用。

public:全部范围都可以使用。

实际使用中修饰符的使用

代码块

目录

根据出现的位置不同,分为三类。

局部代码块

写在方法里面的一对单独的代码块。提前结束代码的生命周期。使用完立刻回收。(变量只在所属的代码块中有效)起到节约内存的作用,但现在已经不再被常用(因为计算机硬件的快速发展,多定义几个变量,几个字节的空间,不会有多大的影响)。

{
	//大括号内部的内容
}

构造代码块

成员变量位置的代码块,在创建类的对象时,会优先于构造方法执行。一般是空参构造与带参构造中的重复代码部分。

每一次创建对象的时候都会执行。(与静态代码块的区别)

但由于并不是所有的构造方法都会执行相同的代码块,因为这个“不灵活”的特点,构造代码块已经逐渐被放弃使用。取而代之的是,新建一个方法来调用。

静态代码块

类加载初始化时使用

也可以采用自定义方法来取代静态代码块进行初始化,但是程序每次运行到这个方法都会运行所有内容。不如只运行一次的静态代码块优异。

抽象类

封装、继承、多态是面向对象的三个特征。

一个子类共有的方法被抽取到父类中,但是因为子类的差异无法确定具体的方法体内容,必须在子类中重写。但可能会遇到忘记在具体的子类中重写方法的情况。使用抽象方法解决这个问题。

抽象方法必须重写!抽象方法所在的类叫做抽象类。

抽象类与抽象方法的定义格式

public class Person {
    public void commonMethod() {
        //普通方法体有{}
    };
    public abstract void work();// 抽象方法
	//每个子类的方法体不同,故而抽象方法处没有方法体{}
}

抽象类和抽象方法的注意事项

抽象类中构造方法的作用:当创建子类对象时,给子类共有属性赋值使用。(子类创建对象时,带参构造中传入的参数,实际上会被传入父类中进行赋值。)

抽象类和抽象方法的意义

抽取各个子类的共性时,无法确定方法体就把方法定义为抽象。强制让子类按照某种格式重写。

强制子类必须重写方法(统一)。避免多个有共性的子类之间,同一功能的命名不同而导致合作开发不顺利。

标签:java,子类,代码,修饰符,抽象,使用,抽象类,方法
From: https://www.cnblogs.com/xiaoaozi/p/17063286.html

相关文章

  • String类构造方法与普通方法--Java基础058
    packagetest;publicclassDemo1{publicstaticvoidmain(String[]args){//1对象的比较Stringstr1="hello";Stringstr2="hello";......
  • Java序列化机制要序列化那些内容
    在javaeye上搜到一篇robbin关于java序列化的回复,我觉得其中的例子很有说服力,转过来和大家分享。关于更多java序列化的问题可以参见JAVA系列之对象的......
  • Java 文件写入不覆盖的写法
    FileOutputStreamo=null;Filefile=null;FileWriterfw=null;byte[]buff=newbyte[]{};try{f......
  • java合成模式之神奇的树结构
    目录什么是合成模式安全式合成模式抽象构件(Component)角色树叶构件(Leaf)角色树枝构件(Composite)角色使用透明式合成模式抽象构件(Component)角色树叶构件(......
  • java EE开发之Servlet第四课:监听器(Listener)
     1.什么是Listener监听器就像老板的秘书,那个秘书就是活的监听器,时时监听着老板,当老板发生一些事情的时候,秘书就会有相应的措施。比如老板口渴了,秘书就会去端茶;比如老板要......
  • Spring16 - 回顾 Java反射 reflect
    回顾Java反射Java反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意方法和属性;这种动态获取信息以及动态调用对......
  • Java Date与时间戳的转换问题
    Java中String与Date格式之间的转换-NemoWang-博客园(cnblogs.com)主要是String类型的时间,需要使用DateFormat来进行设置转换的格式,调用fmt的parse方法进行将时间转为......
  • JAVA中的时区设置问题
    通过对日常环境和生产环境进行对比发现,变更时间传参之后,在后端java程序转换的日期不统一,对查询造成影响。JAVA中的时区设置第一种方式、通过代码指定。finalTimeZonet......
  • Java中数组的使用
    Java中数组的使用介绍Java中数组的基本使用及需要注意的细节,对Java虚拟机的内存划分及数组在内存中的存储进行分析。Author:MsuenbDate:2023-02-06数组的概念数......
  • Javascript(es2016) import和require用法和区别
    写个简单js文件,假设名字为:lib.js。假设内容如下:exportconstsqrt=Math.sqrt;exportfunctionsquare(x){returnx*x;}exportfunctiond......