Java入门第二季-学习笔记

本文内容来自于幕课网《Java入门第二季》,点击打开连接 比起第一季的笔记更加完整了,主要介绍内容有:类和对象(定义类、变量、构造方法、静态变量、静态方法、静态初始化块)、封装(定义包、系统包、访问修饰符、this关键字、内部类)、继承(方法的重写、final关键字、super关键字、object类)、多态(引用类型转换、抽象类、接口)等。java


类和对象安全

定义类  工具

public class 类名{
    属性 类型(成员变量);
    方法;
}
建立对象   类名 对象名 = new 类名(); (实例化)
使用对象  对象名.属性; 对象名.方法();
属性 又称为 实例变量

变量this

成员变量  类中定义  ,用来描述对象将要有什么;(具备初始值)
局部变量  方法内部定义;

构造方法(系统可自动生成)spa

1. new+构造方法 建立一个新对象
2. 用于初始化对象
3. 其方法名与类名相同,且没有返回值
4. 带参构造方法的使用  类名 对象名 = new 类名(参数);

静态变量3d

static修饰  被类的全部对象所共享  可用类名访问 或对象名访问。

静态方法对象

1.静态方法中不能直接调用非静态变量,须要建立对象访问;
2.普通成员方法中能够直接访问同类的非静态变量和静态变量;
3.静态方法不能直接调用非静态方法,须要建立对象访问;

静态初始化块blog

静态初始化块只在类加载时执行,且只会执行一次,同时静态初始化块只能给静态变量赋值,不能初始化普通的成员变量

静态初始化块最早被执行,而后执行普通初始化块,最后才执行构造方法

封装继承

隐藏属性  经过方法来访问属性

实现步骤接口

1.修改属性可见性  改成private
2.(惯例)建立getter(无参有返回值)/setter(有参无返回值)方法
3.在方法中加入属性控制语句

Java中的包
管理Java 文件  解决同名文件冲突


定义包

(全小写字母)

package 包名//第一行
包之间用”.“隔开

系统包
java.(功能).(类)
java.lang.()  包含java语言基础的类
java.util.()  包含java工具类
java.io.() 包含输入、输出类
使用包
import 包名.类;


访问修饰符
修饰属性和方法的访问范围



this关键字

表明当前对象   this.属性  this.方法

内部类

  内部类( Inner Class )就是定义在另一个类里面的类。与之对应,包含内部类的类被称为外部类。

1. 内部类提供了更好的封装,能够把内部类隐藏在外部类以内,不容许同一个包中的其余类访问该类

2. 内部类的方法能够直接访问外部类的全部数据,包括私有的数据

3. 内部类所实现的功能使用外部类一样能够实现,只是有时使用内部类更方便


成员内部类
静态内部类
方法内部类
匿名内部类

成员内部类(普通)
1.外部类是不能直接使用内部类的成员和方法
2. 若是外部类和内部类具备相同的成员变量或方法,内部类默认访问本身的成员变量或方法,若是要访问外部类的成员变量,可使用 this 关键字。

静态内部类

一、 静态内部类不能直接访问外部类的非静态成员,但能够经过 new 外部类().成员 的方式访问 

二、 若是外部类的静态成员与内部类的成员名称相同,可经过“类名.静态成员”访问外部类的静态成员;若是外部类的静态成员与内部类的成员名称不相同,则可经过“成员名”直接调用外部类的静态成员

三、 建立静态内部类的对象时,不须要外部类的对象,能够直接建立 内部类 对象名= new 内部类();


方法内部类(不能使用访问控制符和 static 修饰符。)
该内部类定义在外部类的方法中,方法内部类只在该方法的内部可见,即只在该方法内可使用。

继承

单继承  一个类只有一个父类
子类拥有父类的全部属性和方法(除private),实现代码复用

class 子类 extends 父类

初始化顺序 

1.先初始化父类  再初始化子类
2.先执行初始化对象属性,再执行构造方法初始化


方法的重写

子类对父类方法能够重写,优先调用子类方法
返回值类型 方法名 参数类型及个数都与父类继承方法相同

final关键字
能够修饰
类 (不准被继承)、方法(不能被重写)、 属性(没法隐式初始化)、 变量(常量)

super关键字
表明父类对象
1.访问父类属性  super.属性
2.访问父类方法 super.方法();

Object 类
默认全部类的父类,方法适用全部子类

1. toString()方法
返回对象哈希码(可重写)地址
2. equals()方法
比较对象的引用是否指向同一块内存地址

getClass() 类对象 代码信息 
类的对象 数据信息

多态


1.引用多态 

父类的引用能够指向(本类/子类)的对象



2.方法多态

建立本类对象时,调用本类方法
建立子类对象时,调用子类重写或继承的方法

引用类型转换
1.向上类型转换(隐式/自动类型转换) 小类型->大类型  无风险
2.向下类型转换(强制类型转换) 大类型->小类型  有风险 (溢出)
3.instanceof运算符  避免安全性问题

抽象类

使用abstract关键字修饰

做用:
约束子类必须有哪些方法,不关注如何实现

使用规则:
1. abstract定义
2. abstract定义抽象方法,只有声明,不须要实现
3.包含抽象方法的类是抽象类
4.能够包含普通方法,也能够没有抽象方法
5.不能直接建立,能够定义引用变量

接口

定义一批类须要遵照的规范,不关心类的内部数据和方法实现细节

定义
不使用class,使用interface关键字   

属性默认 public static final
方法默认 public abstract


与匿名内部类配合使用



练习:

本季练习题为创建一个租车系统,须要完成的功能有:




下一篇将给出个人练习解答