第九课:面向对象-类和对象
一、面向对象简介
1.数据存储方面:
(1)变量:只能存储一个 如果内容多了 存储起来需要定义n个变量 麻烦
(2)数组:可以存储一组相同数据类型的数据
(3)数据类型相同:
•如果用数组存储一个人的信息/比较丰富的信息的话,不太方便
例如:吃货联盟中存储订单和菜品信息
•纵向数组:我们定义了好多个数组,认为不同数组中,索引相同的数据,都是同一
个信息
•升级:不方便,所以想存储更多元化的数据,我们这阶段学习对象,它可以存储数
据
(4)长度不可变:未来阶段要学习集合,它可以解决这问题
2.编码方面:(程序的架构)
(1)面向过程开发:想让它干嘛,你就写对应的代码。你在写吃货联盟的时候,需要展示菜品或订单信息,你就将那一堆的代码,放在那儿就可以了(代码无法重用,扩展性差,可维护性差,阅读性差)
(2)面向方法/功能/函数开发:本阶段我们会将以前重复的代码,按功能切分,抽取成
为一个方法 以后直接调用方法即可快速实现功能
(3)面向对象开发(OOP):(陈鑫卖煎饼->升职加薪->赢取高富帅开酒店)
二、掌握类和对象的关系
1.什么是对象?
(1)万物皆对象 你身边的任何一个,你可以叫得出名或者可以单独区分出来的一个实
体,它就是对象
(2)对象:描述客观事物的一个实体,它由一组属性和方法构成
①属性(特征):描述一个对象的信息
例如:姓名、年龄、性别、游戏中的法防、物防、法攻、家族、帮派、称号…
②方法(操作):描述一个对象的行为
例如:猫吃鱼、狗吃肉、奥特曼专打小怪兽
2.什么是类?
(1)类:人类、鸟类、非人类,分类…
•由一组具有相同属性(不是指属性值一样,而是指属性名,例如:学生对象都有
姓名、年龄等属性)和 相同行为 的对象中抽取出来的一个 抽象的概念(分类)
(2)类和对象的关系:类是一个模板,对象是类的一个具体实例
3.程序中的对象和类:
(1)编程:将现实生活中的场景以计算机指令的形式描述出来
(2)Java是一个 不完全 面向对象 的编程语言(因为Java中有基本数据类型 byte short
int long float double boolean char…)
(3)所有的Java程序都是以类为组织单元
三、掌握如何定义类
•类是一个引用数据类型
•一个类并不是必须要有main方法!mian方法是程序的入口!一个程序只要有一个main
方法作为程序入口即可!(大门只有一个!)
•在Eclipse中,Ctrl+Shift+T可以搜索全局搜索类
•注意事项:
⑴一个.java文件中可以定义多个类,但是只能有一个类被public修饰,被public修饰
的类,它的类名和文件名保持一致(在无特殊情况一个.java文件只写一个类)
⑵一个类并不是必须要有main方法,同样一个类也不是必须要有一堆属性和一堆方
法,这些属性和方法到时候是根据我们的需求决定
⑶定义类的信息的时候也要注意好对其和规范
四、掌握如何定义对象
public class Test {
public static void main(String[] args) {
// 创建对象
// Scanner scanner = new Scanner(System.in);
// 创建学生对象
Student stu = new Student();
// 创建老师对象
Teacher teacher = new Teacher();
// 给对象的属性赋值(存储一些信息)
stu.name = "布俊彪";
stu.age = 18;
stu.id = 700;
stu.weight = 180;
// 给老师信息赋值
teacher.name = "邢老师";
teacher.major = "COT";
teacher.gender = '女';
teacher.teachAge = 30;
// 使用属性值
System.out.println(teacher.name);
// 调用方法
stu.printInfo();
stu.study();
System.out.println("----------------------");
teacher.printInfo();
}
}
五、熟悉基本的方法定义(下一章才是重点)
1.方法:就是一个代码的组合,是一个功能
//通过用户名和密码获取用户信息
getUserByUsernameAndPassword()
2.初识方法的基本语法:
权限修饰符 返回值类型 方法名(){
// 方法体
}
•今天我们学习的方法 没有返回值类型,没有返回值类型的话 定义为void(空、无效
的)
3.方法调用的注意事项:
(1)同一个类中(不包含static情况),调用方法只需要直接写 方法名(); 即可 同一个
类中,你都看到它了,调用一下很简单
(2)不同的类中(不包含static情况),方法间相互调用,需要先创建对象,然后 对象
名.方法名(); 不同类中,你不创建对象,我怎么知道你是谁的方法