面向对象编程OOP

属性+方法=一个类

image-20210713111454304

比如盖楼:有个总设计师

  1. 地基

  2. 安装门

  3. 刷墙

  4. ......

每部分再分类,类似树形,底层是面向过程,但总体结构是面向对象

image-20210713112116609

image-20210713112144097

image-20210713112147542

image-20210713113212439

认识论:

  • 先有对象,人(具体)

  • 后有类,教师,学生(抽象)

代码运行:

  • 先有类(总设计)(person类)

  • 打印很多的人(对象)(通过new关键字产生)

方法回顾

image-20210713115012230

静态方法

image-20210713153333923

非静态方法

image-20210713153901529

方法调用

  1. a和b是两个普通方法,a可以直接调用b

image-20210713155404702

  1. a和b是两个静态方法,a可以直接调用b

image-20210713155438016

  1. a是静态方法,b是普通方法,a无法调用b

image-20210713155520309

原因

image-20210713160315774

形参和实参

image-20210713161801207

值传递和引用传递

Java都是值传递

image-20210713162544934

引用传递

image-20210713164057505

类与对象的关系

image-20210713192321206

image-20210713192405289

image-20210713192431930

创建与初始化对象

image-20210713201021999

image-20210713201343089

以类的方式组织代码,以对象的形式封装数据

构造器

image-20210713201908410

image-20210713211635456

查看一下class文件

project structure-->Modules-->add Content Root-->添加out目录

image-20210713211814320

image-20210713211915505

在main中运行person()方法后会生成class文件

image-20210713213002114

对比Java文件与class文件发现

image-20210713213114037

class文件默认加了一个person方法,名字与类名相同,没有返回值,这就是个构造器

image-20210713213326357

作用:

  1. 使用new关键字本质就是在调用构造器

  1. 实例化初始值,可用debug调试查看过程

image-20210713213808065

有参构造(重载)

image-20210713214451284

如果想要定义有参构造,就必须显式的定义一个无参构造,像这样空着就行

Day13.Super增加:

 因为,写了有参之后无参就没了,new的时候是调用无参构造,所以会报错,也可以Person person = new Person(name);这样new一个有参构造

image-20210713214623835

给对象添加了参数就会走有参构造,可debug

image-20210713214820705

Alt+Insert自动生成构造器

image-20210713215319958

image-20210713215413300

可以重载

image-20210713215634422

总结

image-20210713220011303

 来源:b站狂神

posted on 2021-07-13 22:19  托马斯源  阅读(30)  评论(0编辑  收藏  举报