⛳️面向过程和面向对象的设计思想
面向过程和面向对象(都是语言设计思想):
面向过程procedure oriented programming (POP) :关注具体的流程,一步一步实现解决问题。
面向对象:object oriented programming (OOP):先设计,对现实中客观事物进行分类,创建出类(在类中定义功能),类是对现实事物的抽象,创建出具体的对象,让对象去做具体的事情。
案例:把大象装进冰箱
面向过程:三步实现1.开门();2.装大象();3.关门();面向对象: 冰箱类{ 开门() 关门() 装大象() } 大象类{ }
面向对象无法取代面向过程,他们是相辅相成的。面向对象关注于从宏观上把握事物之间的关系,在具体到如何实现某个细节时,仍然采用面向过程的思维方式。面向对象如果离开了面向过程,就无法实现真正的落地,成为无源之水。
⛳️java类
概念:类是对现实事物的抽象,实际生活中,先有对象(具体存在),后有类。
类的结构:
成员变量:类中的属性
名词:品牌,颜色,价格,型号.....
方法:事物的行为(功能,可以做的事情)
动词:行驶,加速,停止......
构造方法:用于创建对象;
代码块:一段没有名称的代码块
内部类: 即在类体中声明的类。
⛳️Java类的定义
第一步:发现类
类的声明格式:
[访问权限修饰符] [修饰符,abstract,final] class Car{ }
public修饰的类,类名必须与文件名一致。
非public修饰的类,类名可以与文件名不一致
第二步:定义类的成员变量(属性) 成员:类的成员,在类中定义
[访问权限修饰符] [修饰符] type attr_name[=defaultValue] ;
变量按照位置分为:成员变量,局部变量
● 成员变量:
①定义在类中,方法体之外;
②数据类型可以是java支持的任意类型(引用类型,基本类型);
③成员变量可以初始化,也可以不初始化,不初始化时,java会用默认值为其初始化。其中,引用类型默认值是null 整数类型默认值0,浮点类型默认值0.0 boolean类型默认值false,char类型类型默认值是' ';
④创建对象时,会从类中向对象中复制一份成员变量;
⑤在构造方法,成员方法,代码块中可以使用成员变量。
第三步:定义类的成员方法(行为/功能)
[访问权限修饰符] [修饰符]/ void 方法名(){}
●局部变量:
①定义在方法,构造方法,代码块中;
②使用前必须赋值;
③数据类型可以是java中支持的任意类型;
④方法的参数也是局部变量,方法运行时局部变量创建,运行结束后局部变量销毁。
成员方法: 定义在类中,没有被static修饰的,通过对象调用,用static修饰的,可以通过类名直接调用。
案例:Car.java
//1.发现类public class Car {//2.定义类的成员变量(属性) String name; float price; String color; int speed;//3.定义类的成员方法(行为/功能) public void run(int b){ int a = 0; System.out.println(a); System.out.println(b); System.out.println(name+"汽车行驶"); } public void stop(){ System.out.println(name+"汽车停止"); }}
⛳️对象的创建和使用
对象:具体存在的客观事物,可以拿来使用的,万事万物皆为对象。
Car bm = new Car();
new:以Car类为模板,在内存中创建对象;
Car():构造方法,默认有一个构造方法,方法名与类名相同;
Car bm:声明一个Car类型的变量;
= 将创建的对象赋给左边的变量;
bm 表示一个具体存在的对象,可以使用。
同一类的每个对象有不同的成员变量存储空间。
同一类的每个对象共享该类的方法。
对象内存简图:
案例:TextCar.java
public class TestCar { public static void main(String[] args) { Car bm = new Car(); bm.name = "宝马"; bm.color = "黑色"; bm.price = 300000; bm.run(100); Car bc = new Car(); bc.name = "奔驰"; bc.price = 400000; bc.color = "白色"; bc.run(200); Car ad = new Car(); System.out.println(ad.name);//null System.out.println(ad.price);//0.0 System.out.println(ad.color);//null System.out.println(ad.speed);//0 }}
⛳️类和对象
①类是一个模型,是对现实事物的抽象,是模板。
②对象是从类这个模型所创建出的一个具体实例,所以创建对象的过程也叫实例化对象。
③现实生活中先有对象后有类,而编程时先设计类后创建对象。