//今天没啥收获,就重新复习了下权限修饰符的作用范围 private : 当前类 defailt: 当前类,当前包 protected :当前类,当前包,子父类 public:当前类,当前包,子父类,不同包自我感悟
第一个青春是上帝给的;第二个的青春是靠自己努力的。思维导图
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-rox4dr05-1636186573362)(C:UserswcAppDataRoamingTyporatypora-user-imagesimage-20211106160824865.png)]
老师知识点 面向对象第一天 一、我们了解的面向对象和面向过程生活中面向对象和面向过程: 面向对象: 找合适的人,做合适的事 面向过程: 自力更生,亲力亲为
二、类和对象
类: 一类事物的总结,包含事物的属性描述和行为描述 对象: 唯一的,独立的,特殊的个体
三、类的定义格式
class 类名 {
属性=====成员变量
姓名,性别,姓名
行为=====成员方法
吃饭,游泳
}
class Person {
// 属性描述 ==> 【成员变量 Field】
String name;
int age;
char gender;
// 行为描述 ==> 【成员方法 Method】
public void eat(String food) {
System.out.println("中午吃" + food);
}
public void sleep() {
System.out.println("我要和床长相厮守,永不分梨");
}
}
//JavaBean
对于一个类的一个规范化要求
1.所有的成员变量私有化不对外暴露
2.提供相应属性的get set 方法
3.最少显式的定义一个无参构造器
//
class JavaBean {
private int age;
JavaBean () {}
public void setAge (int age) {
this.age = age;
}
public int getAge () {
return age;
}
}
权限修饰符
| 同类 | 包 | 子父类 | 不同包 | |
|---|---|---|---|---|
| private | T | F | F | F |
| defailt | T | T | F | F |
| protected | T | T | T | F |
| public | T | T | T | T |
用来控制成员变量跟方法还有类的可见范围。 存在继承关系时父类不可以是private,因为子类不可以继承。 局部变量也就是方法中定义的变量参数,不能被权限修饰符修饰 总结: 在不同包下面能够访问的权限修饰符只有: pulbic 与protected,但是 protected 必须要有继承的关系才能够访问。
this 关键字
this 当前类对象 在构造方法中,表示new + 构造方法创建的对象本身
//getter setter方法
成员变量被私有化后,除了本类意外其他类无法取值和赋值
格式:
Setter
public void set成员变量名(对应成员变量数据类型参数) {
赋值语句;
}
例如:
private String name;
public void setName(String name) {
this.name = name;
}
Getter
public 对应成员变量数据类型返回值 get成员变量名() {
return 成员变量;
}
例如:
private String name;
public String getName() {
return name;
}
四、Java创建对象的格式
// 类名 对象名/变量名 = new 类名(参数);
Person p = new Person();
Person p1 = new Person("name");
五、Java中通过类对象操作成员变量的方式
//通过【类对象.成员变量名称】 ==> 获取成员变量数据/赋值成员变量数据
p1.name = "张三";
p1.age = 36;
p1.gender = '男';
System.out.println("Name:" + p1.name);
System.out.println("Age:" + p1.age);
System.out.println("Gender:" + p1.gender);
六、Java中通过类对象操作成员方法的方式
Person p = new Person();
Person p1 = new Person("name");
p.eat();
p1.eat();
七、 构造方法
public 类名 (初始化参数) {
初始化语句//可有可无
}
【作用】初始化通过 new + 构造方法创建的类对象对应数据内容。
构造方法只有初始化能力,没有创建对象的能力
【创建对象参与者】 new 构造方法
1. new根据构造方法的名字 ==> 类名。计算得到当 前对象所需的内存空间大小,在内存的堆区申请内存空间
2. new关键字会擦除申请空间中的所有数据内容
3. 构造方法初始化对应的空间数据
【要求】1. 构造方法的名字必须是类名,不得是其他的名称
2. 类名不得用于类内成员方法的命名使用
3. 类名之所以作为构造方法的名称,是用于在创建对象的 过程中, 提供明确的数据类型名
Java编译器自动提供的无参数构造方法
【重点】如果程序员自行定义构造方法,Java编译器不再提供无参数 构造方法
如果不定义Java编译器自动提供的无参数构造方法
public Cat() {}
public Cat(String name ) {}
八、类对象内存分析图
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-9EO36lke-1636186573372)(C:UserswcAppDataRoamingTyporatypora-user-imagesimage-20211106094801609.png)]
九、面向对象三大特征之封装
开发中你要学会的封装思想
一段代码,出现了三次,封装成了一个方法 一系列方法,使用了三次,封装成一个工具类 一个类在公司使用三遍,完成对应的工作文档
上面说的Javabean其实就是一个封装的思想
十、多类合作
记住一句话:要什么,给什么,用什么,拿啥 记住一句话 要什么,给什么,用什么,拿什么。 汽修厂 <==> 汽车 两个类: 汽修厂 属性 名字 地址 联系方式 行为 修车【重点】 是否需要提供给修车操作 一辆车 该方法需要外来数据,该方法有参数,参数类型是什么??? 所需参数类型为 汽车类对象 汽车 属性 牌子 颜色 轮胎个数 行为 飙车 安全的轮胎个数有4个,才可以飙车
十一 、作业
要求:十二生肖 1. 每一个类对应三个或者三个以上成员变量 2. 每一个类对应三个或者三个以上成员方法 3. 每一个类必须有三个或者三个以上的构造方法,并且强 制要求有一个无参数构造方法 4.【重点】成员变量名称所有类不可重复 5.【重点】成员方法名称所有类不可重复 6. 每一个类单独一个文件 7. 每一个类必须使用所有构造方法,创建对应对象,并且 使用创建对象,调用所有成员变量数据进行展示,和所有成员方 法进行执行。 8. 每一个方法,必须有对应的标准文档注释!!! 9. 完成符合JavaBean规范的 十二生肖 要求 同之前的十二生肖要求一致 + 要求使用Setter方法进行赋值操作,用Getter获取数据 10. 多类合作案例 三遍,带完整注释 11. 数组算法所有内容复习



