本文内容来自于幕课网《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
与匿名内部类配合使用
练习:
本季练习题为创建一个租车系统,须要完成的功能有:
下一篇将给出个人练习解答