当前位置: 首页 > news >正文

学习JAVA的第八天(基础)

目录

多态

前提

形式

测试类

调用成员的特点

优势

 劣势

注意事项:

final关键字

常量 

命名规范:

注意事项:

 权限修饰符

分类

代码块

局部代码块 

构造代码块

静态代码块

抽象类

抽象类:

定义格式    

抽象方法:

定义格式   

注意事项


多态

        同类型的对象,表现出不同形态

前提

        有继承关系

        有父类引用指向子类对象

        有方法重写

形式

        父类类型 对象名称 = 子类对象;

测试类

public class Test {public static void main(String[] args) {//创建3个对象 学生 老师 管理员Student s = new Student();s.setName("张三");s.setAge(18);Teacher t = new Teacher();t.setName("李四");t.setAge(50);Administrator a = new Administrator();a.setName("王五");a.setAge(30);register(s);register(t);register(a);}public static  void register(Person p) {p.show();}
//    学生的信息为:张三,18
//    老师的信息为:李四,50
//    管理员的信息为:王五,30
}

调用成员的特点

变量调用:编译看左边,运行也看左边

方法调用:编译看左边,运行看右边

优势

        在多态形态下,右边对象可以解耦合,便于扩展和维护。

        定义方法时,使用父类做参数,可以接收所有子类,体现多态的扩展性和便利

 劣势

 不能调用子类的特有功能,使用时需要进行强制类型转换。转换时使用instanceof关键字进行判断

        包就是文件夹,用来管理不同功能的java类,方便后续的代码维护

包名取名规则:见名知意

注意事项:

        使用同一包中的类,不需要导包

        使用java.lang包中的类,不需要导包

        如果同时使用两个包的同名类,需要用全类名

final关键字

修饰对象作用
方法表明该方法是最终方法,不能被重写

表明类是最终类,不能被继承

变量叫做常量,只能被赋值一次

常量 

        常量一般作为系统的配置信息,方便维护,提高代码可读性。

命名规范:

                单个单词:全部大写

                多个单词:全部大写,单词之间用下划线隔开 

注意事项:

        final修饰的变量是基本数据类型,那么变量存储的地址值不能发生变化。

        final修饰的变量是引用数据类型,那么变量存储的地址值不能发生变化,对象内部可以改变

 权限修饰符

 权限修饰符:用来控制一个成员被访问的范围

作用:可以修饰成员变量,成员方法,构造方法,内部类

分类

修饰符同一个类中同一个包中其他类不同包下的子类不同包下的无关类
private
空(默认)
protected
public

代码块

  • 局部代码块
  • 构造代码块
  • 静态代码块

局部代码块 

                用于限定变量生命周期,提高内存利用率。

构造代码块

                写在成员位置的代码块,优先构造方法执行的。

静态代码块

                需要static关键字修饰,随着类的加载而加载,并且自动触发,只执行一次。

抽象类

抽象类:

                如果一个类中存在抽象方法,那么该类必须被声明为抽象类

定义格式    

public abstract class 类名{}

抽象方法:

                将共性的行为抽取到父类之后。由于每个子类执行的内容不一样,所以在父类中不能确定每个子类的方法体

定义格式   

public abstract 返回值类型 方法名(参数列表);

注意事项

  • 抽象类不能实例化
  • 抽象类中不一定有抽象方法,有抽象方法的类一定是抽象类
  • 可以有构造方法
  • 抽象类的子类需要重写抽象类中的所有抽象方法,或者子类也是抽象类

http://www.lryc.cn/news/309639.html

相关文章:

  • 【硬件相关】IB网/以太网基础介绍及部署实践
  • 【JavaEE】_Spring MVC项目之建立连接
  • 【JavaEE进阶】 Spring AOP源码简单剖析
  • Redis--内存回收机制详解
  • win安装卸载python3.13
  • APIFox-自动获取登录状态操作
  • 【NDK系列】Android tombstone文件分析
  • CentOS7 Hive2.3.8安装
  • 代码随想录算法训练营第四十四天 完全背包 、零钱兑换 II 、组合总和 Ⅳ
  • 【经验】vscode 鼠标拖曳不能选中整行文字,只能选中纵向矩形范围
  • Redis--事务机制的详解及应用
  • 路由器端口映射如何配置?
  • 力扣34. 在排序数组中查找元素的第一个和最后一个位置(二分查找)
  • 【每日一题】3.2 求逆序对
  • NTP时间源服务器(NTP网络时钟)助力智慧医院数字化
  • Benchmark学习笔记
  • Linux中的动静态库
  • C/C++基础语法
  • Home Assistant:基于Python的智能家居开源系统详解
  • 使用vscode进行简单的多文件编译
  • Python实现PPT演示文稿中视频的添加、替换及提取
  • Mysql学习之MVCC解决读写问题
  • Linux下如何生成coredump文件
  • eltable 合计行添加tooltip
  • Secure Boot(安全启动)
  • 大厂面试经验:如何对加密后的数据进行模糊查询操作
  • 修改docker默认存储位置【高版本的docker】
  • CleanMyMac X2024免费Mac电脑清理和优化工具
  • 吴恩达机器学习全课程笔记第四篇
  • 大数据分析师常用函数