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 多态的实际意义
多态的实际意义在于屏蔽不同子类的差异性实现通用的编程,从而带来不同的结果。

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

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

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

  2. 深入学习Java对象创建的过程:类的初始化与实例化

    在Java中,一个对象在可以被使用之前必须要被正确地初始化,这一点是Java规范规定的.在实例化一个对象时,JVM首先会检查相关类型是否已经加载并初始化,如果没有,则JVM立即进行加载并调用类构造器完 ...

  3. JAVA对象创建的过程

    Java中一个实例对象被创建的过程 一.类的加载过程 首先,Jvm在执行时,遇到一个新的类时,会到内存中的方法区去找class的信息,如果找到就直接拿来用,如果没有找到,就会去将类文件加载到方法区.在 ...

  4. 内存管理运算符new delete与内存管理函数malloc free的区别——已经他们对对象创建的过程。

    (1)内存管理函数与内存管理运算符的区别 内存管理函数有内存分配函数,malloc calloc realloc 以及内存释放函数free. 内存管理运算符有new 和delete. 两种内存管理方式 ...

  5. Java内部类与final关键字详解

    一.内部类的几种创建方法: 1.成员内部类 class Outer{ private int i = 1; class Inner{ public void fun() {System.out.pri ...

  6. 深入理解JVM(2)——揭开HotSpot对象创建的奥秘

    一.对象创建的过程:当虚拟机遇到一条含有New的指令时,会进行一系列对象创建的操作. 检查常量池中是否含有带创建对象所属类的符号引用 a) 如果含有的话,直接进行下一步 b) 如果常量池中没有这个符号 ...

  7. -1-2 java 面向对象基本概念 封装继承多态 变量 this super static 静态变量 匿名对象 值传递 初始化过程 代码块 final关键字 抽象类 接口 区别 多态 包 访问权限 内部类 匿名内部类 == 与 equal

    java是纯粹的面向对象的语言 也就是万事万物皆是对象 程序是对象的集合,他们通过发送消息来相互通信 每个对象都有自己的由其他的对象所构建的存储,也就是对象可以包含对象 每个对象都有它的类型  也就是 ...

  8. Java基础super关键字、final关键字、static关键字、匿名对象整理

    super关键字 10.1子父类中构造方法的调用 public class Test { public static void main(String[] args) { new Zi(); } } ...

  9. JAVA面对对象(三)——Super、static、final关键字

    Super 使用super关键字可以直接调用父类中的构造方法.属性.普通方法 super调用父类构造方法的操作,与this调用构造方法一样,语句必须放在子类构造方法的首行 public class P ...

随机推荐

  1. < Python Index >

    1. 基本语法   1.1 常量/变量   1.2 运算符   1.3 表达式   1.4 程序结构 2. 内置数据结构    2.1 列表    2.2 元组    2.3 集合    2.4 st ...

  2. [转] Hadoop管理员的十个最佳实践

    前言 接触Hadoop有两年的时间了,期间遇到很多的问题,既有经典的NameNode和JobTracker内存溢出故障,也有HDFS存储小文件问题,既有任务调度问题,也有MapReduce性能问题.遇 ...

  3. [转]微信小程序之购物车 —— 微信小程序实战商城系列(5)

    本文转自:http://blog.csdn.net/michael_ouyang/article/details/70755892 续上一篇的文章:微信小程序之商品属性分类  —— 微信小程序实战商城 ...

  4. java编写带头结点的单链表

    最近在牛客网上练习在线编程,希望自己坚持下去,每天都坚持下去练习,给自己一个沉淀,不多说了 我遇到了一个用java实现单链表的题目,就自己在做题中将单链表完善了一下,希望大家作为参考也熟悉一下,自己 ...

  5. 悟空模式-java-普通工厂模式

    [大圣看玩多时,问土地道:“此树有多少株数?”土地道:“有三千六百株.前面一千二百株,花微果小,三千年一熟,人吃了成仙了道,体健身轻.中间一千二百株,层花甘实,六千年一熟,人吃了霞举飞升,长生不老.后 ...

  6. 1px边框的渐变

    <div class="box">banner</div> .box { width: 100px; height: 50px; line-height: ...

  7. 教程:RSS全文输出,自己动手做。(一)

    这里以PHP版为例,尽量说得通俗点吧,水平实在有限,见谅. 目前我这里所有的获取全文输出的网站大概是三种情况: 要输出的内容集中在一页上,也就是看似列表页的页面里集中了你想要的所有内容,并不需要点击“ ...

  8. javascript之for循环的几种写法

    背景 javascript中的for循环选择多种多样,可你知道其中的差别在哪里吗?什么时候又该用哪种循环才是最佳策略?以上这些是本文想讨论的,欢迎交流. 说明 1.20年前的for循环 //20年前的 ...

  9. [WEB面试题] web前端面试题HTML+CSS第一弹,个人整理部分面试题汇总

    以下内容仅供参考,网络整理而来 1.XHTML和HTML是什么有什么不同的区别 HTML是一种基本的WEB网页设计语言 XHTML可扩展超文本标记语言,是一种置标语言,表现方式与超文本标记语言(HTM ...

  10. 网件路由器wps无法设置

    问题:网件路由器WPS设置项全为灰色,无没设置 原因:因为设置WIFI时,将ssid广播隐藏了,导致WPS功能失效,所以WPS设置项为灰色.要想设置WPS,将SSID广播恢复即可