Java作为一个优秀的面向对象设计的编程语言,初学者在学习过程中难免会对“对象”对“类”而感到不解;那么什么是面向对象什么是面向过程呢?举个栗子,假设有一个人叫姣姣,有一天她想要去洗衣服,于是就开始放水、放衣服、放洗衣粉、开始手洗手搓、再放水清洗等等,一番操作过后终于把一盆衣服洗好了;
在以上过程图中,我们发现这个小人经历了很多的步骤,每一个步骤都是过程,这就是面向过程设计:注重的是过程,在整个过程中所涉及的行为,就是功能。终于有一天姣姣厌烦了,她受不了了每天手洗衣服,就想着能不能把洗衣服的这些步骤整合在一块,制造一个机器来帮她进行这些工作,于是就连夜跑去买了一台洗衣机,之后她每次衣服的模式就变为了:拿衣服、放洗衣机里,洗好衣服!
自从有了洗衣机之后姣姣洗衣服变得简单多了,现在她每次洗衣服需要做的就是如何去操作衣服和洗衣机这两个对象了,即拿脏衣服,塞进洗衣机,拿干净衣服。上图所示的这种方式其实就是所谓的面向对象设计,在编程设计的过程中注重的是对象,也就是参与过程所涉及到的主体。是通过逻辑将一个个功能实现连接起来。
简单来讲就是找对象,使用对象。这样做的好处也很明显:将复杂的事情简单化了,只需要面对一个对象就可以了。
而在计算机世界当中,类和对象这两个都是很抽象的东西,所以我们初学者在初步认知中最好把他们都进行实例化。例如上图中的小人姣姣是我的对象,她属于人类,那么“人类”便是一个“类”,所以就得出了:类就是一类对象的统称。对象就是这一类具体化的一个实例。
创建一个 “人” 类:
// 创建类
class <class_name>{
field;//成员属性
method;//成员方法
}
// 实例化对象
<class_name> <对象名> = new <class_name>();
class 为定义类的关键字,class_name为类名,其中field为属性,也叫字段或成员变量;method为成员方法。这样我们就可以具体实现一个“人”类:
class Person{
public String name; //定义一个人的名字
public int age; //定义一个人的年龄
public String sex; //定义一个人的性别
public double height; //定义一个人的身高
public void eat(){
System.out.println(" 正在吃饭。");
}
public void drink(){
System.out.println(" 正在喝水。");
}
}
在Person类中,定义了四个属性:name、age、sex、height,和两个方法:eat、drink。
方法类似为一个人的行为,比如人每天都需要吃饭,如果不定义一个方法,在每次定义Person类的时候,都需要写一个eat函数,就很会麻烦,所以方法的存在使得代码更加简洁。
在我们写好一个类后就需要用类来实例化一个新的对象,这一种过程称为类的实例化。这时我们就可以理解成“女娲造人”,女娲娘娘按照自己的形状用泥土捏出了一个一个小人,每一个小人的形状都是一样的,也都是对象。实例化出的对象会占用实际的物理空间,存储类成员变量。
public class TestDemo {
public static void main(String[] args) {
Person person = new Person(); //通过new实例化对象
//成员方法调用需要通过对象的引用调用
person.eat(); //调用person对象中的eat方法
person.drink(); //调用person对象中的drin方法
}
}
在以上代码中
通过 “new” 关键字来实例化了一个新的对象,正所谓自己动手,丰衣足食;那些没有对象的兄弟还不快艾特你的好兄弟进来学Java,一起来“new”一个新对象?(手动滑稽)
那么运行之后我们便可以得出,输出结果为:正在吃饭!正在喝水!
关于类的成员主要分为:字段、方法、代码块、内部类和接口。
字段/属性/成员变量:在类中,并且在方法外部定义的变量称为成员变量。在方法内部定义的变量称为局部变量。
方法:用于描述一个对象的行为。