学习目标:
小白起飞第九天
学习内容:
- 面向对象
1.1 概述
面向过程 : 侧重分步骤
比如做菜
1 买菜,买各种食材,买各种调料
2 开火,烧油
3 翻炒
4 出锅
1.2面向对象 : 侧重分类/模块
比如做菜
1 完成做菜,涉及到的事物有 : 厨师,食材,工具
2 找个厨师,交给他
3 厨师.买食材
4 厨师.使用工具做菜
1.3 构造方法
编译器功能 : 能把我们代码编译成class文件,并且还会检查代码的语法,也会帮助我们补全不规范的代码
比如调用当前类中的静态变量的时候,可以省略类名,但是编译器会帮我们加上
同时如果我们类中没有构造方法,编译器也会默认帮我们创建一个公共的无参构造
构造方法 :
1 作用 : 创建当前类的实例化对象,初始化成员属性
2 初始化 : 赋值
3 静态变量什么时候初始化 : 类加载阶段(main方法执行之前)
4 如果不定义构造方法的话,JVM会默认帮我们创建一个公共的无参构造
5 如果我们定义了构造方法的话,不管我们定义的是有参还是无参,那么JVM都不会再帮我们默认创建无参构造
6 构造方法默认是 : 公共的,静态的,没有返回值的,方法名和类名相同
public 类名(){}
但是我们声明的时候 不能加static,因为构造方法具有双重性
如果 只是静态方法,那么 里面不能操作成员变量,也就不能对成员变量初始化赋值
如果 只是成员方法,那么就没有办法创建对象了,因为想要创建对象必须调用构造方法,而构造方法如果是成员的,想要调用成员方法必须先有对象
所以 构造方法 具有双重性,我们再声明的时候 不可以加static
构造方法比较特殊
7 语法
[权限控制修饰符] 类名(参数列表){方法体}
1.4 类和对象
对象 :
1 代码角度 : new 的一个实例,封装了特有的数据
2 数据角度 : 封装数据和逻辑的一种方式
3 现实角度 : 对象就是某一个具体的东西,一切皆对象
4 设计角度 : 从一个实际的实体中抽象出来某些属性的一种实体表示
类 :
概念 : 我们再思想上对某个事物/东西/某一类东西的唯一性标识
是我们人,在思想上对某个事情/事物的一个界定(定义)
是我们大脑对客观事物描述的一个标准,一个模板
我们再抽离某个概念,就能建立相关事物的类,一定通过他的数学来形成这个概念,通过这些属性来形成这个类
然后通过不同的属性值,形成了实体,就是那个具体的对象
通过不同的属性,划分不同的类,通过不同的属性值,划分不同的个体
属性分为两种 :
1 静态属性 : 类的行为和功能
2 动态属性 : 类对象的行为和功能
但是在代码角度来说,类和对象都是保存数据的一种手段
1.5 实例化 :
类 变量 = new 构造方法(参数);
1 加载类到静态区
2 调用构造方法(栈内存压栈,开辟栈帧),在堆内存开辟内存空间
3 把对应类中的成员属性复制到堆内存中
4 再把堆内存内存地址赋值给栈内存遍历
1.6 类的构成
类 : 根据具体的事物/需求 抽象出来的属性特征,那么 类中都可以有什么呢?(java死规定)
1 main : 入口方法,只要该类不是用来作为启动类的,就可以没有
2 成员变量 : 每个对象共有的属性,属性值可以相同也可以不同
3 静态变量 : 每个对象共有的属性和值(保存在方法区)
4 局部变量
5 成员方法
6 静态方法
7 构造方法
8 抽象方法
9 静态语句块
10 动态语句块
11 this
12 super
类中只能出现这些,但是类中的一切都不是必须的,也可以什么都不写,但是如果写的话只能写这些
类库端 : 就是被调用的
客户端 : 就调用别人的
1.7 Bean
javaBean
成员变量私有化
有对应的getter/setter方法
对应的构造方法
1.8 常见异常
java.lang.NullPointerException :
空指针异常,是运行时异常
当使用null值(空的引用) 去访问成员属性的时候,就会出现空指针异常
JVM特性 :
跨平台,面向对象,多线程,垃圾自动回收机制
垃圾 : 如果没有更多的引用指向这个对象,该对象被视为垃圾数据,等待被回收
学习时间:
提示:这里可以添加计划学习的时间
例如:
1、 周一至周五晚上 7 点—晚上9点
2、 周六上午 9 点-上午 11 点
3、 周日下午 3 点-下午 6 点
学习产出:
提示:这里统计学习计划的总量
例如:
1、 技术笔记 2 遍
2、CSDN 技术博客 3 篇
3、 学习的 vlog 视频 1 个