1、面向对象编程
之前我们大概提及过,Java是一门面向对象编程的语言。面向对象,其实是指以对象为基本单位去分析、设计以及实现系统;而Java具备描述对象以及对象之间关系的能力,所以说它是一门面向对象编程的语言。
刚接触编程的新人可能还是不太明白这里的“对象”,这里的对象你可以理解为囊括了某个东西所有特性的具体代表,比如隔壁王叔叔,他是一个对象,那么他的特性就有比如名字,身高,体重,性格等等;活物行,静物也行,如键盘也是一个对象,它的特性如键帽,键程,重量等;总的来说,万物皆对象。
2、什么是类和对象
我们说,Java是面向对象编程的一门语言,这意味着它可以描述对象,就像我现在用中文描述某人如 “张三,男,25岁,未婚,balabala”,你能看明白,当我用Java语言来描述他时,你也能看明白。
我们首先要明白的是:
- 对象的实质是 “属性 + 行为”
- 比如 张三,他的属性有姓名、性别、身高等,他的行为有跑、跳、工作、唱歌等
- 比如 我的成都银行卡,它的属性有账号、密码、余额等,它的行为有存款、取款、转账等
但是对象太多了,比如有张三、李四、王五、赵六,我们一个一个地去描述他们的话,也太多了,毕竟万物皆对象。我们要想办法笼统又不失准确地去描述他们怎么办?实际上,你仔细想想,他们都是什么?没错,他们都是人,属于人这种类别。所以我们完全可以囊括地说 “他们都是人”,而不是具体地说 “他们是身高175身材好的张三和年龄25的李四,还有魁梧潇洒的帅气王五和性感美丽皮肤晰白的赵六”。
实际上,Java中也是按照这样设计的,Java中有这个概念,类(class):
- 类定义了对象共同的属性和行为
- 具体的某个对象需要通过类来进行申明
所以假如我们要在Java的世界里描述张三,我们需要先定义人这个类,再定义属于人的张三。怎么样,是不是有种创世神的感觉?
人这个类,用Java代码来简单示例的话,大概如下:
public class Person {
String name; //属性,姓名
int age; //属性,年龄
public void eat(){ //行为,吃
System.out.println("吃东西");
}
public void run(){ //行为,跑
System.out.println("跑起来");
}
}
x
1
public class Person {
2
String name; //属性,姓名
3
int age; //属性,年龄
4
5
public void eat(){ //行为,吃
6
System.out.println("吃东西");
7
}
8
9
public void run(){ //行为,跑
10
System.out.println("跑起来");
11
}
12
13
}
而我们要如何定义张三呢?这样:
Person zhangsan = new Person(); //定义zhangsan为一个Person
zhangsan.name = "张三"; //zhangsan的名字叫“张三”
zhangsan.age = "25"; //zhangsan的年龄是25
zhangsan.eat(); //zhangsan吃东西
zhangsan.run(); //zhangsan跑起来
1
Person zhangsan = new Person(); //定义zhangsan为一个Person
2
zhangsan.name = "张三"; //zhangsan的名字叫“张三”
3
zhangsan.age = "25"; //zhangsan的年龄是25
4
zhangsan.eat(); //zhangsan吃东西
5
zhangsan.run(); //zhangsan跑起来
代码看不懂不要紧,这里只是示例,明白Java世界中类和对象两者之间的关系。关于具体如何使用Java代码来定义,下个章节继续。