1.访问控制(笔试题)
1.1 常用的访问控制符
public - 公有的
protected - 保护的
啥也不写 - 默认的
private - 私有的

1.2 访问控制符的比较
访问控制符 访问权限 本类 本包中的类 子类 其他包的类
---------------------------------------------------------------------------
public 公有的 ok ok ok ok
protected 保护的 ok ok ok no
啥也不写 默认的 ok ok no no
private 私有的 ok no no no

要求大家掌握的内容:
a.public修饰的内容表示可以在任意位置使用;
b.private修饰的内容只能在本类内部使用;
c.通常情况下,成员变量都用private修饰,成员方法都用public修饰;

1.3 包的定义
package 包名;
package 包名1.包名2...包名n;

定义包的主要目的就是为了便于文件的管理以及区分同名的文件。

2.final关键字(重点)
2.1 基本概念
final本意为"最终的,不可更改的",该关键字可以修饰类、成员方法以及成员变量。

2.2 使用方式
final关键字修饰类体现在不能被继承;
- 为了防止滥用继承,如:String类、System类等。
final关键字修饰成员方法体现在不能被重写;
- 为了防止不经意间造成方法的重写,如:SimpleDateFormat类中的format()方法。
final关键字修饰成员变量体现在该成员变量必须初始化而且不能更改;
- 为了防止不经意间造成数值的改变,如:Thread.MAX_PRIORITY等

扩展:
在以后的编程中单独使用static或final关键字修饰变量的场合很少,通常都是使用public static final共同修饰该变量来表达常量的含义,常量的命名规则是:所有字母都大写,不同单词之间采用下划线连接。
如:
public static final double PI = 3.14;

3.对象创建的过程(了解)
3.1 单个对象创建的执行过程
(1)当创建对象时会在堆区中申请内存空间,采用默认初始化的方式来处理成员变量;
(2)采用显式初始化来进行成员变量的处理;
(3)执行构造块中的代码,可以给成员变量再次赋值;
(4)执行构造方法体中的代码,此时对象构造完毕;

3.2 子类对象创建的执行过程
(1)当创建子类对象时会在堆区中申请内存空间;
(2)先加载父类再加载子类,因此先执行父类的静态语句块,再执行子类的静态语句块;
(3)先执行父类的构造块,再执行父类的构造方法体,此时父类部分构造完毕;
(4)先执行子类的构造块,再执行子类的构造方法体,此时子类对象构造完毕;

4.多态(重中之重)
4.1 基本概念
多态主要指同一种事物表现出来的多种形态。
饮料:可乐、雪碧、加多宝、乐虎、红牛、... ...
宠物:猫、狗、鸟、鱼、小强、...
整数:byte b = 10; short s = 10; int i = 10; ...
... ...

4.2 语法格式
父类类型 引用变量名 = new 子类类型();
如:
Pet pc = new Cat();
pc.show();
解析:
在编译阶段调用Pet类中的show()方法,在运行阶段调用Cat类中重写以后的show()方法。

4.3 注意事项
(1)使用父类的引用指向子类的对象时,父类的引用可以直接调用父类中的成员方法;
(2)使用父类的引用指向子类的对象时,父类的引用不可以直接调用子类中的成员方法;
(3)对于非静态的成员方法来说,编译阶段调用父类版本,运行阶段调用子类版本;
(4)对于静态的成员方法来说,编译和运行阶段调用父类版本,与对象无关;

4.4 引用数据类型之间的转换
(1)引用数据类型之间的转换分为两种:自动类型转换 和 强制类型转换;
其中子类类型向父类类型的转换发生自动类型转换;
其中父类类型向子类类型的转换需要强制类型转换;
(2)引用数据类型之间的转换必须发生在父子类之间,否则编译报错;
(3)当转换的子类类型并不是该引用真正指向的子类类型时,编译阶段通过,运行阶段
发生类型转换异常;
(4)为了避免上述错误的发生,建议每次强制类型转换之前使用以下格式进行判断:
if(引用变量名 instanceof 目标类型){}
- 判断引用变量名真正指向的对象是否为目标类型,若是则返回true,否则返回false

4.5 多态的实际意义
多态的实际意义在于屏蔽不同子类的差异性实现通用的编程,从而带来不同的结果。

转载于:https://www.cnblogs.com/sumboy/p/8604169.html

(1)访问控制 (2)final关键字 (3)对象创建的过程 (4)多态相关推荐

  1. Java对象创建的过程及对象的内存布局与访问定位

    这里以HotSpot为例,且所说的对象指普通的Java对象,不包括数组和Class对象等. 1.对象创建的过程 1.类加载.解析.初始化:虚拟机遇到new时先检查此指令的参数是否能在常量池中找到类的符 ...

  2. 对象创建的过程细节是怎样的?一起来探讨内存变化细节

    目录 一.对象的实例化 对象创建的几种方式 对象创建的步骤 二.对象的内存布局 三.对象的访问定位 JVM是如何通过栈帧中的对象引用访问到其内部的对象实例呢? 1.句柄访问 2.直接指针(HotSpo ...

  3. JAVA构造器及对象创建的过程

    今天学妹问我Java对象到底是怎么创建的?那我必须要从底层给学妹讲清楚呀! 一. 构造器 JAVA中构造器也称为构造方法,它用于对象的初始化. 构造器分为: 无参构造器 有参构造器 构造器的一些特点: ...

  4. Java自学笔记(13):【面向对象】方法覆盖,final关键字,对象转型

    方法同名时:方法重载,方法覆盖 同一类内的方法同名:方法重载 子类与父类方法同名:方法覆盖 //在包person下 //Person.java package person;public class ...

  5. 对象创建的过程 java_Java 对象创建过程

    构造器是静态方法. 1. Java中,用new()创建一个对象的时候,Java虚拟机首先去检查new指令的参数是否能够在方法区的常量池中定位到这个类的符号引用,并且检查这个符号引用代表的类是否被加载. ...

  6. 百无聊赖之JavaEE从入门到放弃(五)this的本质_对象创建过程的4 步_隐式参数 static

    目录 一.this关键字 1.对象创建的过程和this的本质 2.this最常的用法: 二.static关键字 三.变量分类 一.this关键字 1.对象创建的过程和this的本质 构造方法是创建Ja ...

  7. MyBatis运行原理(二)SqlSession对象创建过程分析

    PS:这篇博文承接上一篇: MyBatis运行原理(一)SqlSessionFactory对象创建过程分析 在上一篇博文中分析了SqlSessionFactory对象创建的过程,有了SqlSessio ...

  8. 指令级别解释对象创建过程和DCL为什么要volatile

    先上图 先明白几点 1.jvm stack指的是线程栈,一个线程有一个jvm stack. 2.线程里的一个方法对应一个栈帧,一个栈帧有Local Variables(本地变量表,记录了方法的参数.局 ...

  9. MyBatis运行原理(一)SqlSessionFactory对象创建过程分析

    一.写在前面 MyBatis基于接口形式的编程主要步骤: 1.创建SqlSessionFactory对象. 2.根据SqlSessionFactory对象获取SqlSession对象. 3.为mapp ...

最新文章

  1. 使用CoordinatorLayout打造一个炫酷的详情页
  2. php float 和double,PHP float 浮点型数据类型
  3. 【网址收藏】主流Ansible Web UI的部署与使用:Tower AWX Semaphore TiOps
  4. 算法竞赛入门经典(第二版) | 例题5-3 安迪的第一个字典 (紫书牛啤!)(UVa10815,Andy's First Dictionary)
  5. mysql流式查询mybatis_流式查询:MyBatis千万级数据查询解决方案,避免OOM
  6. SAP Hybris Accelerator的安装和使用方式
  7. java对两个表进行排序_Excel工作簿中多个worksheet工作表,如何对工作表进行排序?...
  8. 自学Java必看的知识点,猿们怎么看?
  9. Ubuntu设置root登录
  10. pytorch 入门学习 实现线性回归-5
  11. 强化学习(二)--动态规划寻找最优策略
  12. 人脸检测(十七)--Faceness-Net
  13. gxworks2使用指令手册_编程软件GX-Works2简单工程功能块篇操作手册三菱GX-Works2手册 - 广州凌控...
  14. python编写代码自动运行程序_利用Python编写自动打开指定软件的程序
  15. 国密 GmSSL 版本及安装
  16. 十六进制和字符串的转换
  17. 【0CTF/TCTF2021预选】[Misc] pypypypy Sloth writeup python字节码编程
  18. 基于数据安全的风险评估-数据资产识别
  19. 《这里是中国》精美词句摘抄
  20. [转]移动IIS7.5默认inetpub目录

热门文章

  1. “AS3.0高级动画编程”学习:第二章转向行为(上)
  2. Oracle Data Guard 理论知识
  3. java 对比两个表的字段的差异_Joolun小程序商城 2.2.2版本上线了——Java微信快速开发平台...
  4. python私有属性怎么定义_Python中私有属性的定义方式
  5. matlab求微分方程的系数,如何利用matlab求解矩阵系数的二阶微分方程
  6. 径向基函数神经网络_基于RBF神经网络的网络安全态势感知预测研究
  7. 该文件 linux命令,Linux网络系统,如果执行行命令#chmod 746 file.txt,那么该文件的权限是?...
  8. python刷题笔记怎么改_python面试题刷题笔记1 - 10
  9. 网络推广恶意点击js_昆明百度推广电话方法(百度推广)按效果付费_有效商机咨询...
  10. Python Qt GUI设计:窗口布局管理方法【强化】(基础篇—6)