2022-11-30

一、面向对象

image.png

面向对象是一种按照人类正常思维去编程的思想
面向过程编程

人类是有很强的总结归纳能力的
计算机世界就是在模拟现实世界,想在计算机世界模拟一个实物就需要总结
练习:创建一个人类,有姓名、性别、年龄等属性,工作、说瞎话等行为,再创建一个该人类的对象

二、类和对象

1、类可以认为是模板、图纸
对象可以认为是具体的产品
所以说类是对象的抽象,对象是类的具体实现
2、本类中调用方法可以直接方法名(实参列表),
其它类中调用方法需要对象.方法名(实参列表)
3、如果一个类的属性没有初始值,jvm会根据属性的数据类型,为属性初始化,
当然也可以手动给对象属性赋值,这样只有当前对象有这个属性值
也可以在类中给属性赋值,这样根据该类创建的对象都有这个属性值
4、对象和对象之间相互独立

三、构造方法、构造器

1、和类同名
2、不写返回值和返回值类型
3、一般由public修饰
4、一般使用new 构造方法调用,用于创建对象和为对象属性赋值
5、构造方法也支持重载,具体调用哪个,根据参数类型确定
6、当不写任何构造方法时,jvm会为该类默认加上一个无参构造方法,当有构造方法,jvm就不默认加了
7、通过构造方法创建对象并赋初始值时,构造方法要么形参与成员属性不同名,要么使用this.属性设值
8、this(值)表示调用对应的本类构造方法,this(值)只能放在构造方法的第一行
有时我们不希望一类的所有构造方法被外界访问,但是还希望给某些属性赋值

四、类和对象的内存图

image.png

四、成员变量和局部变量

成员变量:位于类中
局部变量:位于方法中
成员变量和局部变量同名时,采取就近原则的方式

五、static

1、静态的,可以修饰属性、方法、代码块、内部类
2、由static修饰的成员伴随着类,因此可以用类名.成员也可以用对象名.成员调用,类和它的对象,共享static成员
3、static修饰的成员跟着类型加载到方法区中,就有了意义,相当于被“激活”
4、非static修饰的成员需要等创建对象,才有意义
5、本类中
static方法访问static属性或方法,直接使用
static方法访问非static属性或方法,对象名.属性或对象名.方法
非static方法访问static属性或方法,直接使用
非static方法访问非static属性或方法,直接使用
6、其他类中
static方法访问static属性或方法,类名.属性或者类名.方法以及对象名.属性或者对象名.方法都可以使用
static方法访问非static属性或方法,对象名.属性或对象名.方法
非static方法访问static属性或方法,类名.属性或者类名.方法以及对象名.属性或者对象名.方法都可以使用
非static方法访问非static属性或方法,对象名.属性或对象名.方法

image.png

六、关于代码块

放进方法中的{}普通代码块,一般用于封闭某些不想被外界获取的元素,比如变量
和方法并列的{}叫构造代码块
和方法并列的,由static修饰的{},叫静态代码块
以上三者执行顺序是
静态代码块
构造代码块
构造方法

作业

定义一个人类,有名字名字、身高、体重、年龄、肤色、性别等属性
有吃饭、睡觉、说瞎话、搞对象等方法
有一个无参构造器,和一个为上述属性赋值的有参构造方法

你可能感兴趣的:(2022-11-30)