1.面向对象与面向过程的区别
①面向过程 :关注点是在实现功能的步骤上面,就是分析出解决问题所需要的步骤,让后函数把这些步骤一步一步实现,使用的时候一个一个依次调用就可以。对于简单的流程是适合面向过程的方式进行的,复杂的流程不适合使用面向过程方式开发的。
②面向过程:关注点是在实现功能需要哪些对象参与。人类就是分析出解决问题都需要那些对象的参加,然后让对象与对象之间协作起来形成一个系统。面向对象开发方式耦合度低,扩展能力强。
2.类与对象
什么是类?
在我们现实生活中,事物与实物之间具有共同特征。比如张三和李四这个人都有父母,有身份证号,有房子车子票子,有体重有身高,还有,他们都可以吃,可以喝,可以跑这些行为。
那么,我们将这些东西(共同的状态和行为)抽取出来,形成一个模板,这个就是类。比如张三和李四抽取出一个人这个类。
这样,我们就可以看出,类实际上就是人的大脑思考总结出来的一个模板,类是一个抽象的概念。那么当中的状态被称为属性。属性通常用变量来表示。行为在程序中对应方法,用来描述行为动作。
所以,我们可以总结出:类=行为+方法。
什么是对象?
就是实际存在的个体,就比如我们上面提到的张三和李四。对象有称为实例。我们通过类这个模板可以实例化n个对象。(通过类可以创建多个对象)。就比如说,我们通过人这个类可以创建“张三”和“李四”对象。在人这个类中有一个属性名字 String name,"张三对象"和“李四”对象也有name属性,只是值不同,我们就称作这样的属性为实例变量。
3.类的定义
定义类的格式:
[修饰符列表] class 类名{
类体=属性+方法;
//属性(就是实例变量),他描述的是状态
//方法(就是实例方法),他描述的是行为动作
}
为什么要定义类?
因为我们要通过类去实例化对象。有了对象,让对象和对象之间协作起来形成系统。
public class student {
//属性:姓名,年龄,性别,他们都是实例变量
//姓名
String name;
//语文成绩
double chinese;
//英语成绩
double english;
//数学成绩
double math;
}
注意:实例变量是一个对象一份,比如我们创建了三个学生,每个学生都应该有name。
那么我们如何去实例化对象,访问对象的属性呢?
我们用一个案例来说明一下。
首先:我们 定义一个电脑类
package com.web.quictstart.computer;
public class Computer {
String name;//电脑名字
double price;//价格
String brand;//品牌
}
然后,我们可以实例化电脑对象
package com.web.quictstart.computer;
public class ComputerTest1 {
public static void main(String[] args) {
//通过电脑类Computer实例化对象(通过类创建对象)
Computer computer = new Computer();
//访问对象的属性
System.out.println(computer.name);
System.out.println(computer.brand);
System.out.println(computer.price);
//修改对象的属性,修改变量的值,给变量重新赋值
computer.name = "华硕第二代";
computer.brand = "华硕";
computer.price = 15999;
//访问修改后的属性
System.out.println(computer.name);
System.out.println(computer.brand);
System.out.println(computer.price);
//我们还可以继续创建对象
Computer computer1 = new Computer();
computer1.name = "戴尔";
computer1.brand = "戴尔";
computer1.price = 12999;
//访问对象属性
System.out.println(computer1.name);
System.out.println(computer1.brand);
System.out.println(computer1.price);
}
}