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);}
}