尊暮萧的个人空间 - setter
type: channel
link: https://www.zunmx.top/tag/setter/
items: Java 入门 (六)

Java 入门 (六)
type: item
date: 2021-04-24T22:49:00+08:00
description: 一、面向对象1.1 面向过程回想我们之前写过的代码，我们要做一件事情的时候，会先分析这件事情怎么去做，然后通过代码一步一步去实现。而这一步步的实现是需要我们全程参与，这些过程通过互相之间的调用和协调来完成我们的需求，这种处理问题的方式被我们称为面向过程 代表性的语言：C语言1.2 面向对象但是随着需求的增加，代码的内容肯定会也相应的增加，这就代码的复杂性。 回想之前我们学过的数组，遍历一个数组的时候，我们可以写一个for循环来解决。但是要遍历10个数组的时候，怎么办呢？我们使用了方法来进行改进。对一个数组我们有了多种操作：数组的遍历、数组的求最值、数组的反转等，这些我们都用方法进行改进。我们知道所有的方法都是定义在类中，所以我们可以将这些对数组的操作都放在一个类中，以后想要对数组进行操作的时候，只要通过类的具体的实例来调用这些方法完成相应的功能即可。这种处理问题的方式被我们称为面向对象。 代表性的语言：Java例子做饭： 面向过程：买菜-择菜-洗菜-切菜-炒菜-装盘 面向对象：服务员（点菜）-厨师（炒菜）-服务员（上菜） 买电脑： 面向过程：分析需求-根据需求找相应配置的电脑-去电脑城-购买到手 面向对象：将需求提供给懂电脑的对象-这个对象去买电脑-购买到手1.3 面向过程和面向对象的关系面向对象是基于面向过程的1.4 面向对象的好处将复杂的问题简单化 更符合人类的思维习惯 将我们从问题的执行者，变成了指挥者1.5 面向对象的特征封装 继承 多态二、类与对象现实世界中是如何描述一个事物的属性：姓名、年龄 一般都是名词 行为：唱歌、跳舞、闪电鞭 一般都是动词Java就是为了解决现实世界中的问题而存在的，Java中是如何描述一个事物的呢？Java中最基本的单位是类，所以我们可以使用类来对现实世界中的事物进行描述成员变量： 相当于现实中的属性 成员方法： 相当于现实中的行为 成员变量：与之前讲过的局部变量差不多，只不过成员变量是声明在类中方法外的，并且成员变量不用进行初始化就能使用 成员方法：与之前我们使用的方法差不多，只不过这个地方就先不用static了，而是直接被public修饰2.1 什么是对象？对象是类的一个具体的表现比如： 类： 汽车 对象： 五菱宏光、迈巴赫、宝马 类： 学生 对象： 郭泰 注意事项：一个java文件中可以放多个类，但是只能有一个被public修饰2.2 案例：学生类class Student { //成员变量（相当于属性）：姓名、年龄 //姓名 String name; //年龄 int age; //成员方法（相当于行为）：吃饭、睡觉、学习 //吃饭 public void eat() { System.out.println("吃饭"); } //睡觉 public void sleep() { System.out.println("睡觉"); } //学习 public void study(String ss) { System.out.println(ss + "学习"); } }三、使用类中的成员3.1 创建对象格式： 数据类型 对象名 = new 数据类型(...); 格式的解释： 数据类型：只能是引用数据类型，比如说之前见过的Scanner，也可以是现在创建的Student类 对象名： 实际上是一个引用，用来存储对象的地址 =：将在堆上new出来的对象的地址赋值给对象名（引用） new：关键字new，用来在堆上开辟空间 数据类型：同上 (...)：是一个方法（实际上是一个构造方法），有参就传参，无参就不传3.2 使用成员变量对象名.成员变量名;3.3 使用成员方法对象名.成员方法名(...); 注意： ...的意思是 如果有参就传参，如果无参就留空public class Demo2 { public static void main(String[] args) { //1. 数据类型 对象名 = new 数据类型(...); Student s = new Student(); //2. 使用成员变量 对象名.成员变量名; s.name = "马保国"; s.age = 69; System.out.println(s.name); System.out.println(s.age); //3. 使用成员方法 对象名.成员方法名(...); s.eat(); s.sleep(); s.study("马保国的弟子"); } }四、对象的内存图4.1 两个对象的内存图/* * 学生类 */ public class Student { //成员变量：姓名、年龄 String name; int age; //成员方法：吃饭、睡觉 public void eat() { System.o…