JAVA学习笔记-06
多态:可以理解为事物存在的多种体现形态
1.多态的基本体现
父类的引用指向了自己的子类对象
父类的引用也可以接收自己的子类对象
2.多态的前提
必须是类与类之间有关系,要么继承,要么实现
通常还有一个前提:存在覆盖
3.多态的好处
多态的出现大大的提高了程序的扩展性
4.多态的弊端
提高了扩展性,但是只能使用父类的引用访问父类中的成员。
instanceof指向对象,如 a instanceof b 如果a指向b
5.多态出现代码中的特点(多态使用注意事项)
在多态中成员函数的特点:(父类有子类对象的时候)
在编译时期:参阅引用型变量所属是否有调用方法。如果有编译通过,如果没有编译失败
在运行时期:参阅对象所属的类中是否有调用的方法
总结:成员函数在多态调用时,编译看左边,运行看右边
在多态中,成员变量的特点。无论编译或运行都是参考左边。也就是引用型所属的类
在多态中,静态成员函数的特点:无论编译和运行都参考左边
object类:是所有对象的直接或者间接父类。该类中定义的是所有对象都具备的功能
equals:两个对象之间进行比较
toString:返回该对象的字符串表示。
内部类:将一个类定义在另外一个类的里面。对里面的那个类成为内部类(内置类,嵌套类)
特点:
1.内部类可以之间访问外部类中的成员,包括私有。之所以可以直接访问外部类中的成员,是因为内部类中持有了一个外部类中的引用。该引用的写法是 外部类名.this
2.外部类要访问内部类必须建立内部类对象。
3.内部类在外部类成员内时能被私有修饰,
直接访问内部类中的成员:
当内部类定义在外部类的成员位置上,而且非私有,可以在外部其他类中,直接建立内部类对象
外部类对象.内部类对象 别名=new 外部类对象.new 内部类对象
当内部类定义在成员位置上,就可以被成员修饰符所修饰。比如:
1。private:将内部类在外部类中进行封装
2.static:内部类就是具备static特性,当内部类被static修饰后,只能直接访问外部类中的static成员。出现了访问局限
在外部其他类中,如何直接访问静态内部类的非静态成员
格式:new 外部类名.内部类名().内部方法名()
在外部其他类中,如何直接访问静态内部类的静态成员
外部类名.内部类名.内部方法名()
注意:当内部类中定义了静态成员,该内部类必须是静态的。
当外部类中的静态方法访问内部类时,内部类也必须时静态
JAVA学习笔记-06的更多相关文章
- Java学习笔记 06 数字格式化及数学运算
一.数字格式化 DecimalFormat类 >>DecimalFormat是NumberFormat的子类,用于格式化十进制数,可以将一些数字格式化为整数.浮点数.百分数等.通过使用该类 ...
- 0037 Java学习笔记-多线程-同步代码块、同步方法、同步锁
什么是同步 在上一篇0036 Java学习笔记-多线程-创建线程的三种方式示例代码中,实现Runnable创建多条线程,输出中的结果中会有错误,比如一张票卖了两次,有的票没卖的情况,因为线程对象被多条 ...
- 0035 Java学习笔记-注解
什么是注解 注解可以看作类的第6大要素(成员变量.构造器.方法.代码块.内部类) 注解有点像修饰符,可以修饰一些程序要素:类.接口.变量.方法.局部变量等等 注解要和对应的配套工具(APT:Annot ...
- Java学习笔记(04)
Java学习笔记(04) 如有不对或不足的地方,请给出建议,谢谢! 一.对象 面向对象的核心:找合适的对象做合适的事情 面向对象的编程思想:尽可能的用计算机语言来描述现实生活中的事物 面向对象:侧重于 ...
- 0032 Java学习笔记-类加载机制-初步
JVM虚拟机 Java虚拟机有自己完善的硬件架构(处理器.堆栈.寄存器等)和指令系统 Java虚拟机是一种能运行Java bytecode的虚拟机 JVM并非专属于Java语言,只要生成的编译文件能匹 ...
- 0030 Java学习笔记-面向对象-垃圾回收、(强、软、弱、虚)引用
垃圾回收特点 垃圾:程序运行过程中,会为对象.数组等分配内存,运行过程中或结束后,这些对象可能就没用了,没有变量再指向它们,这时候,它们就成了垃圾,等着垃圾回收程序的回收再利用 Java的垃圾回收机制 ...
- 0028 Java学习笔记-面向对象-Lambda表达式
匿名内部类与Lambda表达式示例 下面代码来源于:0027 Java学习笔记-面向对象-(非静态.静态.局部.匿名)内部类 package testpack; public class Test1{ ...
- 0025 Java学习笔记-面向对象-final修饰符、不可变类
final关键字可以用于何处 修饰类:该类不可被继承 修饰变量:该变量一经初始化就不能被重新赋值,即使该值跟初始化的值相同或者指向同一个对象,也不可以 类变量: 实例变量: 形参: 注意可以修饰形参 ...
- 《Java学习笔记(第8版)》学习指导
<Java学习笔记(第8版)>学习指导 目录 图书简况 学习指导 第一章 Java平台概论 第二章 从JDK到IDE 第三章 基础语法 第四章 认识对象 第五章 对象封装 第六章 继承与多 ...
- Java学习笔记-多线程-创建线程的方式
创建线程 创建线程的方式: 继承java.lang.Thread 实现java.lang.Runnable接口 所有的线程对象都是Thead及其子类的实例 每个线程完成一定的任务,其实就是一段顺序执行 ...
随机推荐
- 关于vux-ui框架的scroller组件所踩的坑
这是我在做一个demo的一个上垃加载下拉刷新功能时所遇到的问题,由于伤了好一会脑筋,所以留下这篇笔记以供后续查询: 在上代码前建议在开发项目时不要优先选择vux这个框架,因为有一些常用的功能组件官方已 ...
- JZOJ 4043. 【雅礼集训2015Kzf】洪水
题目 题解 很明显的 \(dp\) \(f_u = \min(a_u, \sum_{(u,v) \in E}f_v)\) 然后套路的设 \(g_u\) 表示不管重儿子的 \(f_u\) \(f_u = ...
- SVN信息泄露漏洞
SVN信息泄露漏洞 目录 SVN信息泄露漏洞 1 SVN 简介 2 SVN目录 3 SVN信息泄露漏洞危害 4 漏洞利用 5 漏洞修复 1 SVN 简介 SVN(subversion)是一个开放源代码 ...
- 登峰造极,师出造化,Pytorch人工智能AI图像增强框架ControlNet绘画实践,基于Python3.10
人工智能太疯狂,传统劳动力和内容创作平台被AI枪毙,弃尸尘埃.并非空穴来风,也不是危言耸听,人工智能AI图像增强框架ControlNet正在疯狂地改写绘画艺术的发展进程,你问我绘画行业未来的样子?我只 ...
- CSS 定位position
.link span { position: absolute; top: 0; left: 50%; transform: translateX(-50%); }
- unity resMgr
yooAsset GitHub - tuyoogame/YooAsset: unity3d resources management system xAsset GitHub - xasset/xas ...
- vscode 设置默认模板
1.左下方管理按钮 2.用户代码片段 3.搜索html.json 4.{ "Print to vue": {//print to 后面的vue是模板的命名 "prefi ...
- 15.网关Gateway
创建网关的Module 使用注册中心和配置中心 详细可以参考另两篇篇博客-注册中心和配置中心 报错 编译报了这个错,原因是我们没有给网关配置数据库连接字符串,但是引用了common,common中有m ...
- C - Functions again CodeForces - 789C
C - Functions again CodeForces - 789C 这道题考查了对Map的运用 #include<iostream> #include<cstdio> ...
- drf从入门到飞升仙界 08
断点调试使用 # 程序在debug模式运行,可以在任意位置停下,查看当前情况下变量数据的变化情况 # 使用pycharm调试程序 - 1.以debug模式运行. - 2.在代码左侧加入断点(红圈) - ...