java基础:对象和类(0613)
面向对象和面向过程:
-
都是解决一些问题的方式,也是一种思想
-
面向过程(PO):是一种以过程为中心的思想
-
面向对象(OO):是一种把事情对象化,使其具备属性行为的思想
举个例子:我们需要吃饭,如果我们自己去做,需要先买菜,然后洗菜,洗米,蒸饭,炒菜等等一步步实现,最后才能吃饭,这样的流程化实现就是面向过程。如果我们是点外卖,则不需要做菜煮饭的这个过程,只需要根据菜的种类和价格等因素去选择自己想要吃的菜,这样的方法就是面向对象。
总结: 1、面向对象的侧重点不再是生产过程 2、面向过程和面向对象的优缺点:
1)面向过程
优点:复杂问题流程化 缺点:整体系统繁琐,可拓展性差 2)面向对象 优点:可拓展性强 缺点:需要一定的环境支持
3、面向对象和面向过程并不是对立的,而是相辅相成
-
面向过程是一种执行者思维
-
面向对象是一种设计者思维
在程序中,面向对象编程(OOP)和面向过程编程(POP)也是常见的,java中要实现OOP思想,那么就提取类和对象
-
对象是现实世界的真实存在个体,有明确指向
-
类是基于现实对象里抽出的概念,是很多对象的集合体
举例:假设在一个班里小明是真实存在的唯一的一个人,那么他就相当于一个对象,而人是包含小明的一个类。如果说小明这个人,则可能是一个类,因为世界上叫小明的人可能有很多个。包括说这个人,他也是一个类,因为对于“这个人”也是未知的,没有明确的指向。
因此,基本数据类型本身也是满足面向对象的设计,但是基本数据类型不满足我们开发的需求, 还需要自定义设计一些类型,这些自定义类型也叫做引用类型。
我们来创建一个Person类
定义一个自定义的类,需要去定义属性和行为: 1、属性。所有对象的共同属性 成员变量
2、行为。所有对象共有的行为 成员方法
public class Person {
//成员变量
String name;
int age;
double height;
double money;
//成员方法
void say(){};
void eat(){}
public double getMoney(){
return money;
}
void payMoney(int num){
money=money-num;
}
}
我们可以在其它方法中去使用该Person类
public class 对象和类 {
public static void main(String[] args) {
Person p1=new Person();
//在此处创建一个对象,一旦创建,则它的属性都默认为null p1.age=18;
p1.name="张洪浩";
p1.money=1000;
System.out.println(p1.name);
//成员变量怎么调用
double money=p1.getMoney();
System.out.println(money);
p1.payMoney(5);
System.out.println(p1.getMoney());
}
}
注意:
-
数组是引用类型,Person也是引用类型
-
数组不会自动初始化,Person也不会自动初始化
-
数组中的元素会自动初始化,Person中的成员变量会自动初始化
-
基本类型数据值初始化和以前是一样的
-
但是引用类型的数据初始化默认值都为null
总结
1、面向对象是把对象共有性质封装的编程思想, 面向过程是把一个事情过程封装的编程思想 2、对象是个体,类是多个对象的集合 3、一个类可以为多个对象服务,同理一个类也可以有多个对象,但是结构相同,数据不同 4、类是对象的模板,对象是类的具体实例