当时初学Java的时候在这里卡住了,因为这里不懂导致后面实例化,调用方法什么的都不太懂,特别难受。就大学教的java课,当理解了面向对象后后面就水到渠成了。
什么是面向对象
面向对象的核心是模仿人类思考问题的方法,从现实世界中客观存在的对象出发来构建软件系统。将软件要解决的问题高度抽象化,并用相应的计算机语言去描述该问题的解决方法。
Java在面向对象中使用对象(object, 也成为实例)把数据和对数据的操作组合起来封装成一个整体,抽象为类(class) 来表示。类中的数据称为对象的属性。代表对象所具有的属性或者存在的状态,对数据的操作(行为)称为对象的方法,它实现对数据的各种操作。
总结一下,对象是对现实世界中某种事物高度抽象化的描述,而类就是对象在程序语言中的表形式。
万物皆对象,有这个意识就对了。
只需要知道对象有什么用,能带来什么。人想象人抽烟,会想象到许多个体,香烟,人,打火机,吸烟场合,,只要知道这四个对象,就能协作起来构成一个概念。每个对象关联程度低,可以改变,所以对象都是【独立体】。(扩展力强)
人在认识世界是以面向对象的方式实现认知
优点,耦合度低,扩展力强,组建复用性强
缺点;前期投入高,需要进行独立体的抽取
例子
我们都知道,人类有很多属性,比如每个人都有姓名,性别,爱好等等。
我们将人设计成一个类,类的名字取为user.
我们为这些用户设计一些属性:姓名,性别,身份,爱好。
我们再为其设计一个方法来表示他的动作。
代码如下:
public class user {
//姓名
String name;
//性别
String sex;
//身份
String attribute;
//爱好
String preference;
//行为
int action()
{
System.out.println("姓名" +name+ "性别" +sex+ "身份" +attribute+ "爱好" +preference);
return 0;
}
}
这样我们就构建了一个类文件,也就是对一个对象的模板设计已经完成。
接下来我们通过这个user类来实例化两个对象,并分别为他们添加属性。
这里user类和HelloWorld类要在同一包内。
代码解释:
第5行:实例化一个user对象a,第11行为实例化一 个对象b。
6到9行:为对象a赋予属性值(此处为了演示效果属性并没有设置为私有属性,所以类外可以对其进行操作,但是一般来说属性都要设置为私有,通过构造函数来设置初值和通过get/set方法来获取和赋值)
第10行11行:通过对象调用其action方法,我们看到控制台输出了不一样的结果。
至此,我们抽象了一个人,并根据人来构建了一个user类,我们为其设置了属性和方法来表示他的一些特征和动作。然后我们实例化了a和b,为其添加了属性,并调用了他们的action方法。看到不同的对象(a/b) 显示出不一样的结果。