✨ 脑暴主题:java-(面向对象)
记录者: 邹炀霖
⏰ 记录时间:2021年7月5日 08:30 -- 20:29
[划重点:]
对象其实就是 复制了类的 属性(成员变量),功能(成员方法) 的数据的空间!
可以给这片空间的属性赋值和修改,可以对这个空间的内容进行操作! ]
面向对象的概述:面向过程: 强调的是 【过程】。也就是说完成 功能的每一个步骤都需要自己来做
面向对象: 强调的是 【对象】。也就是说由对象去帮我们完成具体的功能
结合我们实际生活当中,
来举个例子,打个比方:✅
⭐️( 我想吃烤鸡)
面向过程: 【执行者】 先买一只小鸡苗--> 买一点饲料--> 开始养大-->杀掉鸡-->处理干净,拔干净鸡毛-->烤一烤,生的吃不了-->烤好后开吃-->吃完洗刷餐具
面向对象: 【指挥者】 去餐厅点一只烤鸡--> 开吃
面向对象的好处是:✅
⭐️
1.将复杂的事情简单化
2.更符合人们思想习惯的思想(说白了就是懒人思想,我自己不想做,由别人帮我们去上课)
3.将程序员由执行者 变成了 指挥者
类与对象的关系:
什么是类? 【对事物的抽象描述, 也是一个模板】
是一种抽象的广泛的概念,是事物的属性和行为的一种集合。
例如:动物类、水果类、汽车类.....
这个动物很好看,你知道是什么动物吗? 不知道吧。 这就是抽象描述
什么是对象? 【类的实现,实例化】
对象就是指某一类事物的具体体现。
例如:动物类(猪、狗、猫....) 水果类(苹果、香蕉、橘子....)
定义类的格式:
修饰符 class 类名称 {
成员变量:
其实就是指这一个类的描述信息
比如说,他有哪些属性
成员方法:
就是指这一个事物还可以做哪些事情
也就是对应他的行为
}
类的范例:
public class Demo02 {
//公开的成员变量
public String name; //人的姓名 (字符串类型的数据)
public int age; //人的年龄 (整数类型的数据)
//无参构造方法 (用于实例化对象)
public Demo02(){
}
//无返回值,带参 成员方法 (吃饭)
public void eat(String food) {
System.out.println(name+"正在吃"+food);
}
//无返回值,无参 成员方法 (睡觉)
public void sleep() {
System.out.println(name+"正在睡觉");
}
}
##类的方法
类的对象范例:方法有两种:
必须要有 :
1. 属性(成员变量) 私有化
2. 方法(带返回值)
3. 无参构造
4. 带参构造
5. Getter and Setter
public class Demo02Test {
//程序运行的主方法
public static void main(String[] args) {
//创建Demo02 对象
Demo02 de =new Demo02();
//使用成员变量(未赋值)
System.out.println(de.name); //未赋值,所以结果是个初始值null
System.out.println(de.age); //未赋值,所以结果是个初始值 0
//给成员变量赋值
de.name="法外狂徒,张三";
de.age=23;
//再次输出成员变量
System.out.println(de.name); // 法外狂徒,张三
System.out.println(de.age); // 23
System.out.println("==========");
de.eat("李四"); //给形参赋值 (String food) =“李四”
de.sleep();
}
}
类和对象的内存图解
对象的创建与使用: 1. 创建对象
类名 对象名 = new 类名();
2.使用成员
2.1使用成员变量:
对象名.成员变量名
2.2使用成员方法:
对象名. 方法名( )
成员变量的默认初始值
1. 整数类型: 0
2. 浮点类型: 0.0
3. 字符类型: 空白字符 “u0000”
4. 布尔类型:false
5. 引用数据类型:null
对象的内存图解 访问修饰符:✅
⭐️private 权限最小(当前类访问级别): 只能在本类中访问和使用 其他类就不能使用了, 只能通过Gertter和Serter间接使用。 ⭐️default (包访问权限)是一个默认的级别: 不加修饰符,就会默认为default, 在一个相同的包下都可以访问,但是出了这个包以外就不能访问不了 ⭐️protected(子类访问级别)继承使用: 如果一个类的成员变量被protected访问控制符修饰,那么这个 只能在本类和 被继承的子类使用 成员变量既能被同一个包下的其他类访问,也能被不同包下该类的子类访问 ⭐️public 权限最大(公共的访问权限): 不同包下都可以访问,能被所有的类访问,不管访问类与被访问类是否在同一个包中
局部变量和成员变量(作用域)
访问特点:java遵守的是就近原则,谁离我近,我就优先使用谁 不管是成员变量,【在java中所有的都是就近原则】
成员变量和局部变量的区别:
A:定义位置 成员变量:定义在类中方法外 局部变量:定义在方法的内部或者方法的声明上
B:内存中的位置 成员变量:在堆内存中 局部变量:在栈内存中
C:声明周期的区别 成员变量:随着对象的调用而创建,随着对象的消失而消失 局部变量:随着方法的调用而创建,随着方法的消失而消失
D:默认初始化值的区别 成员变量:有默认的初始化值 局部变量:没有默认的初始化值,使用之前必须赋值



