面向对象编程OOP
属性+方法=一个类
比如盖楼:有个总设计师
-
地基
-
安装门
-
刷墙
-
......
每部分再分类,类似树形,底层是面向过程,但总体结构是面向对象
认识论:
-
先有对象,人(具体)
-
后有类,教师,学生(抽象)
代码运行:
-
先有类(总设计)(person类)
-
打印很多的人(对象)(通过new关键字产生)
方法回顾
静态方法
非静态方法
方法调用
-
a和b是两个普通方法,a可以直接调用b
-
a和b是两个静态方法,a可以直接调用b
-
a是静态方法,b是普通方法,a无法调用b
原因
形参和实参
值传递和引用传递
Java都是值传递
引用传递
类与对象的关系
创建与初始化对象
以类的方式组织代码,以对象的形式封装数据
构造器
查看一下class文件
project structure-->Modules-->add Content Root-->添加out目录
在main中运行person()方法后会生成class文件
对比Java文件与class文件发现
class文件默认加了一个person方法,名字与类名相同,没有返回值,这就是个构造器
作用:
-
使用new关键字本质就是在调用构造器
-
实例化初始值,可用debug调试查看过程
有参构造(重载)
如果想要定义有参构造,就必须显式的定义一个无参构造,像这样空着就行
因为,写了有参之后无参就没了,new的时候是调用无参构造,所以会报错,也可以Person person = new Person(name);这样new一个有参构造
给对象添加了参数就会走有参构造,可debug
Alt+Insert自动生成构造器
可以重载
总结
来源:b站狂神