1. 面向对象
1.1 什么是面向对象
Java是一门纯面向对象的语言(Object Oriented Program,简称OOP),在面向对象的世界里,一切皆为对象。
面向对象是解决问题的一种思想,主要依靠对象之间的交互完成一件事情。 用面向对象的思想来涉及程序,更符合人们对事物的认知,对于大型程序的设计、扩展以及维护都非常友好。
1.2 面向对象与面向过程
举个例子说明一下:
传统的洗衣方式,需要我们亲力亲为,准备一盆水 --> 放衣服 --> 放洗衣粉 --> 洗衣服 --> 换水 --> 拧干 --> 晾衣服,过程很多,少了一个环节可能都不行。
如果按照该种方式来写代码,将来扩展或者维护起来会比较麻烦。
现代洗衣方式以面向对象方式来进行处理,就不关注洗衣服的过程。
具体洗衣机是怎么来洗衣服,如何来甩干的,用户不用去关心,只需要将衣服放进洗衣机,倒入洗衣粉,启动开关即可,通过对象之间的交互来完成的。
🍩面向过程和面相对象并不是一门语言,而是解决问题的方法,没有那个好坏之分,都有其专门的应用场景
2. 类的定义与使用
2.1 简单认识类
类是用来对一个实体(对象)来进行描述的,主要描述该实体(对象)具有哪些属性(外观尺寸等),哪些功能(用来干啥),描述完成后计算机就可以识别了。
比如:洗衣机,它是一个品牌,在Java中可以将其看成是一个类别。
属性:产品品牌,型号,产品重量,外观尺寸,颜色…
功能:洗衣,烘干、定时…
在Java语言中,如何对上述的洗衣机类来进行定义呢?
2.2 类的定义格式
在 java 中定义类时需要用到 class 关键字,具体语法如下:
// 创建类 class ClassName{ field; // 字段(属性) 或者 成员变量 method; // 行为 或者 成员方法 }
class 为定义类的关键字,ClassName 为类的名字,{} 中为类的主体。
类中包含的内容称为类的成员。
属性主要是用来描述类的,称之为类的成员属性或者类成员变量。
方法主要说明类具有哪些功能,称为类的成员方法。
class WashMachine{ public String brand; // 品牌 public String type; // 型号 public double weight; // 重量 public double length; // 长 public double width; // 宽 public double height; // 高 public String color; // 颜色 public void washClothes(){ // 洗衣服 System.out.println("洗衣功能"); } public void dryClothes(){ // 脱水 System.out.println("脱水功能"); } public void setTime(){ // 定时 System.out.println("定时功能"); } }
采用 Java 语言将洗衣机类在计算机中定义完成,经过 javac 编译之后形成 .class 文件,在 JVM 的基础上计算机就可以识别了。
注:
- 类名注意采用大驼峰定义
- 成员前写法统一为public
- 此处写的方法不带 static 关键字
实例:定义一个 小狗 类
class PetDog { public String name;//名字 public String color;//颜色 // 狗的属性 public void barks() { System.out.println(name + ": 旺旺旺~~~"); } // 狗的行为 public void wag() { System.out.println(name + ": 摇尾巴~~~"); } }
实例2:定义一个 学生 类
public class Student{ //属性 public String name;//姓名 public String gender;//性别 public short age;//年龄 public double score;//学分 //方法 public void DoClass(){}//上课 public void DoHomework(){}//写作业 public void Exam(){}//考试 }
注:
- 一般一个文件当中只定义一个类
- main 方法所在的类一般要使用 public 修饰(注意:Eclipse默认会在 public 修饰的类中找 main 方法)
- public 修饰的类必须要和文件名相同
- 不要轻易去修改 public 修饰的类的名称
3. 类的实例化
3.1 什么是实例化
定义了一个类,就相当于在计算机中定义了一种新的类型,与 int,double 类似,只不过 int 和 double 是 java 语言自带的内置类型,而类是用户自定义了一个新的类型,比如上述的: PetDog 类和 Student 类。
它们都是类(一种新定义的类型)有了这些自定义的类型之后,就可以使用这些类来定义实例(或者称为对象)。
用 类 类型创建对象的过程,称为类的实例化,在 java 中采用 new 关键字,配合类名来实例化对象。
public class oop { public static void main(String[] args) { PetDog dogh = new PetDog(); //通过new实例化对象 dogh.name = "Jack"; dogh.color = "黑色"; dogh.barks(); dogh.wag(); PetDog dogs = new PetDog(); dogs.name = "Peter"; dogs.color = "棕色"; dogs.barks(); dogs.wag(); } } class PetDog { // 狗的属性 public String name;//名字 public String color;//颜色 //狗的行为 public void barks() { System.out.println(name + ": 旺旺旺~~~"); } public void wag() { System.out.println(name + ": 摇尾巴~~~"); } }
🍤 运行结果:
注:
- new 关键字用于创建一个对象的实例
- 使用 . 来访问对象中的属性和方法
- 同一个类可以创建对个实例
3.2 类和对象说明
- 类只是一个模型一样的东西,用来对一个实体进行描述,限定了类有哪些成员
- 类是一种自定义的类型,可以用来定义变量
- 一个类可以实例化出多个对象,实例化出的对象占用实际的物理空间,存储类成员变量
- 做个比方。类实例化出对象就像现实中使用建筑设计图建造出房子,类就像是设计图,只设计出需要什么东西,但是并没有实体的建筑存在,同样类也只是一个设计,实例化出的对象才能实际存储数据,占用物理空间