面向过程 procedure oriented programming (POP):分析出解决问题所需要的步骤,然后把步骤一步一步实现。因此更注重步骤。
面向对象 object oriented programming (OOP):以分类的的方式进行思考和解决问题。面向对象的思维方式适合于处理复杂问题。面向对象的思想符合人类的认识习惯。因此,更注重宏观、整体上的设计。
/*大象进冰箱问题 面向过程:打开冰箱门(); 装大象(); 关闭冰箱门(); 面向过程:设计冰箱类{ 开门(); 关门(); } 人类{ 操作(); } 或 门类{ 开门(); 关门(); } 设计冰箱类{ 门类(); } 人类{ 操作(); } */注:面向过程适合处理简单的事情,直接关注流程,简单有效。
面向对象适合处理复杂的事情,先使用面向对象的方式对整体关系做出分类,然后,根据不同的类深入细节的处理。
面向对象无法取代面向过程,它们是相辅相成的。面向对象关注于从宏观上把握事情之间的关系,在具体到如何实现某个细节时,仍然采用面向过程的思维。
什么是类?
类是一个模板,他描述一类对象(事物)的属性和行为。
类是表示一个客观世界某类群体的一些基本特征抽象。
类 = 汽车设计图;对象 = 实实在在的汽车。
类里面定义事物特征 == 汽车设计图 == Java.文件
对象是具体存在 == 具体的是某一辆车(实际存在,可以使用)
类的结构:
成员变量:对象属性的描述
方法:对象的行为;(可以做的事情)
构造方法:用于创建对象
内部类:即在类体中声明的类
块:代码块 类的定义:
第一步:发现类;
第二步:发现类的公共属性;
第三步:发现类的方法
类的声明:
[访问权限修饰符 public/default][修饰符 final/abstract] class 类名{ //类的属性 类的成员 变量 被类包含 //成员变量声明语法: //[访问权限修饰符][修饰符]数据类型 变量名[=值]; //类的行为 类的成员 方法 被类包含 //成员方法声明语法: //[访问权限修饰符][修饰符] 返回值类型 方法名(形式参数类型 参数名){ //[return 值 ;] //返回值类型若是void,则return可有可无。其余的返回值类型必须加上return。 } }对象:对象是类的一个实例(对象不是找个女朋友或男朋友),是以类为模板,在内存中创建一个实实在在存在的实例。
Car c = new Car();
new关键字 + 默认构造方法();在内存中创建一个对象,但不能使用,需要在左侧以类为模板声明一个变量指向内存空间中具体的对象,使用变量访问对象中的属性、方法。
注:通过类可以创建无数个对象。
①类是一类事物的抽象概念,是一个模型。
②对象是由这个模型所创造的一个一个的具体存在的,是实实在在的实例。
所以创建对象的过程也叫实例化对象。 对象 == 实例
现实生活中先有对象后有类,而编程时先设计类后创建对象。
成员变量: ①定义在类中,方法体之外。
②数据类型为基本类型和引用类型。
③变量可以不赋值,Java自动赋值。 ④在创建对象时会从类体中复制一份到对象中。
引用类型(String):null, 整数类型:0,浮点类型:0.0,布尔类型(boolean):false, 字符型(char):不显示,实际上为空格。
局部变量: ①在方法、构造方法、语句块中定义的变量。
②数据类型为基本类型和引用类型。
③在使用前必须赋初值。
④变量声明、初始化都在方法中,方法结束后,变量自动销毁。
⑤方法的参数也是局部变量,在调用时,会为其赋值。
类变量:(也叫静态变量)类变量也声明在类中,方法体之外,但必须声明为static类型。
一个类可以包含以下类型方法:
成员方法:成员方法是定义在类中。这种方法在创建对象时创建。
语法格式:
[修饰符]返回值类型 方法名(参数列表){ 方法体语句; [return 返回值;] //当返回值类型为void时,return可有可无 }构造方法: ①是定义在Java中的一个用来创建对象的方法。
②方法名与类名相同,没有返回值,不需要void修饰。
③一个类中可以拥有多个构造方法。(方法重载)
④如果类中没有显示的声明构造方法,类中会默认有一个无参的构造方法。
⑤一旦类中定义了有参的,默认无参的构造方法会被覆盖。建议写有参的时候把无参的也写上。
[访问权限修饰符] 类名(参数列表){ 方法体语句; }类方法:(也叫静态方法)类方法也声明在类中,但必须声明为static类型。
方法的重载:
什么样的情况构成方法重载:在一个类中有多个方法名相同,且参数不同的方法。
参数不同:类型不同,个数不同,顺序不同。
重载的作用:可以处理功能相同,但是参数类型不同的一类问题。
注:成员方法和构造方法都可以重载。
若有错误,欢迎私信指正。