前言:本篇文章是对Java的类和对象的讲解,博主在这里抛砖引玉,希望与各路大佬多多交流,如有不妥及错误,望大家能指正和提出意见
类和对象
1. 面对对象的初步认知
1.1 什么是面向对象
Java是一门纯面向对象的语言(Object Oriented Program,简称OOP),在面向对象的世界里,一切皆为对象。面向对象是解决问题的一种思想,主要依靠对象之间的交互完成一件事情。用面向对象的思想来涉及程序,更符合人们对事物的认知,对于大型程序的设计、扩展以及维护都非常友好。
1.2 面向对象
我们这里拿两种洗衣服的方式来类比
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的基础上计算机就可以识别了。
注意事项:
1.类名注意采用大驼峰定义
2.此处写的方法不带 static 关键字。
2.3 代码实例
1.定义一个狗类
class PetDog {
// 狗的属性
public String name;//名字
public String color;//颜色
// 狗的行为
public void barks() {
System.out.println(name + ": 旺旺旺~~~");
}
public void eat() {
System.out.println(name + ": 吃狗粮~~~");
}
}
注意事项:
- 一般一个文件当中只定义一个类。
- main方法所在的类一般要使用public修饰(注意:Eclipse默认会在public修饰的类中找main方法)。
- public修饰的类必须要和文件名相同。
- 不要轻易去修改public修饰的类的名称,如果要修改,通过开发工具修改。
3. 类的实例化
3.1 实例化是什么
定义了一个类,就相当于在计算机中定义了一种新的类型,与int,double类似,只不过int和double是java语言自带的内置类型,而类是用户自定义的一个新的类型,比如上述的:PetDog类。它们都是类(一种新定义的类型)有了这些自定义的类型之后,就可以使用这些类来定义实例(或者称为对象)。
用类创建对象的过程,称为类的实例化,在java中采用new关键字,配合类名来实例化对象。
public class Main {
public static void main(String[] args) {
PetDog dogh = new PetDog();//通过new实例化对象
dogh.name = "阿黄";
dogh.color = "黄";
dogh.barks();
dogh.eat();
PetDog dogs = new PetDog();//通过new实例化对象
dogs.name = "阿黑";
dogs.color = "黑";
dogs.barks();
dogs.eat();
}
}
class PetDog {
// 狗的属性
public String name;//名字
public String color;//颜色
// 狗的行为
public void barks() {
System.out.println(name + ": 旺旺旺~~~");
}
public void eat() {
System.out.println(name + ": 吃狗粮~~~");
}
}
输出结果:
注意事项
new 关键字用于创建一个对象的实例。
使用 . 来访问对象中的属性和方法。
通过关键字new,同一个类可以实例化多个对象。
3.2 类和对象的说明
- 类只是一个模型一样的东西,用来对一个实体进行描述,限定了类有哪些成员。
- 类是一种自定义的类型,可以用来定义变量。
- 一个类可以实例化出多个对象,实例化出的对象占用实际的物理空间,存储类的成员变量。
- 做个类比。类实例化出的对象就像现实中使用设计图建造出房子,类就像是设计图,只设计出来主框架,但是并没有实体的建筑存在。
同样,类也只是一个设计,实例化出的对象才能实际存储数据,占用物理空间。
总结:
本篇文章介绍了类的定义,怎么实例化一个对象,怎么通过对象的引用访问成员变量和方法。
—————————————————————————————————
后记:本篇文章介绍了Java的类和对象,文章多有不足,请各位大佬多多担待。