面向对象;面向过程;
面向过程:分析出解决问题的步骤,利用一个又一个功能(函数)把步骤一步一步实;典型语言C语言;
面向过程适合解决简单问题,相对于面向对象扩展能力较差,后期维护难度较大;
面向对象:关注点为类;参照现实事物,将事务的属性(变量),功能(函数,方法)用类抽象组织表示出来;适合解决复杂问题,延展性强,可维护性高;
面向过程:eg:如何开车:点火启动---离合挂挡---油门---前进;(思考方式:按步骤实现,一步一步解决步骤);
面向对象:eg:如何造车:车是怎么做成的;汽车(座椅,车壳,底盘,发动机,轮子,玻璃)(轮胎:制作的步骤面向过程解决…………)面向对象从整体分析,拆分复杂事务,实现部分(一个又一个方法)事务;拆分的事物用面向过程思路去解决;
面向对象,面向过程相辅相成,面向对象离不开面向过程;
Car car=new Car();
右边:new是创建一个新的对象,Car()以Car类为模板去创建,类型与左边类型同名;
左边:Car(类型名) car(变量名)
=:把右边创建对象的地址赋给左边
用一个类的对象有不同的存储空间,互不影响;
对象是类的一个实例,必然具备该类事物的属性和行为(即方法)
使用对象名.属性或对象名.方法的方式访问对象成员(包括属性和方法)
成员变量和局部变量
public class Car {
int price;
String name;
String color;
/*
成员变量:方法,构造方法,类中均可调用
int price;
String name;
String color;
*/
public void price(){
int a;
//局部变量
//System.out.println(a);未初始化
System.out.println(price);
}
public void color(){//无修饰符(static),调用方法要用(对象名.方法)
System.out.println(color);
}
}
Car bccar=new Car(); bccar.price=1000;//成员变量赋值.对象名.变量. bccar.price();//对象名.方法
引用与对象:
对象好比是一只很大的气球,但是我们抓不住它。引用变量是一根绳,可以用来系汽球。Car car1; (1)创建一根绳子,一根还没有系上任何一个汽球的绳;Car car2;(2)又做了一根绳,还没系上汽球,car1 = new Car();(3)给car1 系上气球;car2 = car1 ;(4)这里,发生了复制行为。要说明的是,对象本身并没有被复制,被复制的只是对象引用。结果是,car2也指向了car1所指向的对象。两根绳系的是同一只汽球*
对象没有名字,也就没法直接访问它。我们需要通过对象引用来间接访问对象
Car car2 = new Car();创建一个引用类型变量car2,将创建的对象地址传给他
引用类型变量接收地址Car car3 = car2;
car3没有new对象,只是与car2的所表示对象地址相同与car2一样表示同一个地址
此处相当于new Car(); 这个语句在堆空间里创建了实体