×

如何理解java面向对象 面向对象 是什么意思

如何理解java面向对象(Java中面向对象到底是什么意思求解,谢谢)

admin admin 发表于2022-09-06 00:05:26 浏览127 评论0

抢沙发发表评论

本文目录

Java中面向对象到底是什么意思求解,谢谢


Java面向对象思想和三大特性

面向对象:  

1、面向对象

面向对象是一种程序设计思想,计算机程序的设计实质上就是将现实中的一些事物的特征抽离出来描述成一些计算机事件的过程,这种抽象的过程中,我们把具体的事物封装成一个一个的整体进行描述,使被描述的对象具备一些系统性、整体性的的行为和特征,我们把这种设计思想称为面向对象。-面向对象

2、面向对象与面向过程

2.1、面向过程是早期的程序语言设计思想,该思想强调事物的行为细节,即程序的设计不需要封装成一个个的整体,而是将整个程序描述成一个行为,所有行为细节都按照固定方式一步一步的执行,执行程序就是执行某一行为的过程。-是什么意思

2.2、面向对象和面向过程都是一种思想,面向对象是相对于面向过程而言的,

面向过程强调的是具体的功能行为,而面向对象将功能封装进对象,强调具备了功能的对象,面向对象是基于面向过程的,但面向对象思想更接近于现实场景。

三大特性:

1、封装

1.1、封装是指:隐藏对象的属性和实现细节,仅对外提供公共访问方式

1.2、封装的好处:

(1)将外界的变化隔离,使程序具备独立、安全和稳定性。

(2)便于设计者使用,提高代码的复用性

1.3、封装的原则

(1)将不需要对外提供的内容都隐藏起来

(2)把实现细节隐藏,提供可以对其进行访问公共的方式

1.4、封装的方式

将某一功能、属性抽离出来,独立写成单独的方法或类

设置访问权限

(1)设置访问权限可以限定该功能或属性可以被特定的访问者访问,保证了程序的安全性和功能的稳定性。

(2)java对类和类中成员都定义了特定的访问修饰符

类:public(公共的) 、default(默认的,不写就默认是它)

类中成员:public、protected、default(默认的)、private 

注:类的访问修饰符可以不写(默认的),也可以写public(公共的),一个java文件中只能有一个被public修饰的类,且被public修饰的类类名必须要跟文件名一致(包括大小写一致),否则编译会出错,为了方便阅读,类名的命名规范是单词的首字母大写,多个单词组成的类名每个单词的首字母都大写-面向对象

2、继承

2.1、继承是从已有的类中派生出新的类,新的类能吸收已有类的数据属性和行为,并能扩展新的功能,或者说将事物的共性的功能和属性抽取出来定义成一个父类,让后来具有更多样化实现的子类继承父类。

2.2、继承的作用:

(1)父类具备的方法子类可以直接继承过来,不用重新书写,提高了代码的复用性

(2)让类与类之间产生关系,有了关系才有多态的实现

(3)Java中只支持单继承,不支持多继承,因为多继承存在安全隐患(当多个父类存在同个功能时,子类不确定要运行哪一个),Java支持多层继承,即父类还可以继承其他类,java用另一种机制解决单继承的局限性,即多实现-是什么意思

2.3、对继承体系的使用

(1)想要使用体系,应该先查阅父类,因为父类定义了该体系的共性功能,了解了父类的功能,就基本可以使用该体系的功能了

(2)在具体调用时,要创建子类的对象,因为有可能当父类是抽象类时父类不能创建对象,而且子类具备更丰富、更具体的功能实现

2.4继承的特点

2.4.1覆盖(重写)

2.4.1.1如果子父类中的成员一致时,子类成员会覆盖父类成员

2.4.1.2当子类继承父类时,沿袭父类的功能到子类中,但子类对该功能的实现细节不一致,子类可以保留父类对该功能的定义,重写功能的内容

2.4.1.3覆盖与重载:重载只看参数列表,其他一致参数列表不一致为重载,而重写子父类的参数必须要一致

2.4.2 this与super

this表示当前对象的引用,super表示当前对象父类的引用

2.5子父类中的构造函数

2.5.1构造函数不能重写

2.5.1.1构造函数第一行有一条隐式的语句super()/this()

2.5.1.2在对子类对象进行初始化时,父类构造函数也会运行,因为子类中的构造函数默认第一行有一条隐式的super()语句,这样方便子类构造时先获取到父类的共性属性

2.5.1.3 super()一定要定义在子类构造函数的第一行,当没有默认的空参数构造函数,要手动指定

2.6、注意事项:

2.6.1千万别为了获取其他类中的功能而继承,必须是类与类间有所属关系才可以继承。

2.6.2子类覆盖父类时必须保证子类权限大于等于父类,才可以覆盖,否则编译失败

2.6.3子类静态成员只能覆盖父类静态成员

2.7 final关键字

2.7.1 final关键字可以修饰类、函数和变量

2.7.2被final修饰的类不可以被继承(继承打破了封装性)

2.7.3被final修饰的方法不可以被复写

2.7.4被final修饰的变量只能被赋值一次,既可以修饰成员变量,也可以修饰

2.8 Object类

2.8.1java中有一个特殊的类,Object类,它是所有对象的超类(根类),Object类中定义了所有对象的共性成员

2.8.2Object类中的方法

equals() 比较两个对象是否相同

toString() 返回该对象的字符串表示形式

getClass() 获取该对象对应的字节码文件对象

hasCode() 获取该对象的哈希码值

2.9类间的体系关系

继承、聚集(聚合)、组合

2.9.1继承:

指的是一个类继承另外的一个类的功能,并增加它自己的新功能或改写旧有功能的具体实现,继承是类与类之间最常见的关系。

2.9.2聚合:

指的是整体与部分的关系。通常在定义一个整体类后,再去分析这个整体类的组成结构。从而找出一些组成类,该整体类和组成类之间就形成了聚合关系。例如足球队中的足球队员就是聚合关系。

2.9.3组合:

也表示类之间整体和部分的关系,但是组合关系中部分和整体具有统一的生存期。一旦整体对象不存在,部分对象也将不存在。部分对象与整体对象之间具有共生死的关系。例如人的各个身体器官之间的关系。

3、多态

3.1、多态的定义;某一类事物具备的多种表现形态(猫、狗和动物)

3.2、java中多态的表现形式

父类的引用指向自己的子类对象

父类的引用接收自己的子类对象

3.3、多态的前提

必须是类与类之间有关系,要么继承,要么实现

子父类间的成员存在覆盖

3.4、多态的好处与缺陷

好处是提高了程序的扩展性,缺陷是只能使用父类的引用访问父类的方法,无法访问子类的特有方法。

3.5、多态的应用

类型转换

向上转型,自然转型

向下转型,强制父类引用向下转型

3.6、特点

(1)多态中成员函数的特点

编译时看引用变量所属的类中是否有方法

运行时看对象所属类的方法

(2)多态中成员变量的特点

无论编译或运行时都参看右边

多态中静态成员函数的特点

编译或运行时都参看左边

3.7、多态的扩展示例

数据库操作(各种数据库):定义数据库的父类型,由哪类型的数据库调用就由该子类实现其具体操作内容。

我有一个微信公众号,每天都会分享一些Java相关的干货文章,还有海量学习资源。
如果你喜欢我的分享,可以用微信搜索“Java团长”或者“javatuanzhang”关注。

Java面向对象的理解


通过你的描述根本看不明白你在说什么
不一定老师说的就对,老师一般头脑里有个“正确”做法,不一样的都被看作“不好”做法。
面向对象的重要作用是封装,一个类、方法一般只做一件事。如果你能做到对象内部管理其自身状态和逻辑,对外只暴露简单接口,那我觉得就算好的对象
-面向对象

JAVA中什么是面向对象


在java的学习中,面向对象应该是java技术的重中之重,虽然在生活中没有对象可以面对,但在技术中还是要一直接触面对对象,而且不可避免。今天对面向对象来了一个小总结。
一、面向对象的特点:
1、将复杂的事情简单化。
2、面向对象将以前的过程中的执行者,变成了指挥者。
3、面向对象这种思想是符合现在人们思考习惯的一种思想。
过程和对象在我们的程序中是如何体现的呢?过程其实就是函数;对象是将函数等一些内容进行了封装。
二、匿名对象使用场景:
1、当对方法只进行一次调用的时候,可以使用匿名对象。
2、当对象对成员进行多次调用时,不能使用匿名对象。必须给对象起名字。
三、在类中定义其实都称之为成员。成员有两种:
1、成员变量:其实对应的就是事物的属性。
2、成员函数:其实对应的就是事物的行为。
所以,其实定义类,就是在定义成员变量和成员函数。但是在定义前,必须先要对事物进行属性和行为的分析,才可以用代码来体现。
四、类中怎么没有定义主函数呢?
注意:主函数的存在,仅为该类是否需要独立运行,如果不需要,主函数是不用定义的。主函数的解释:保证所在类的独立运行,是程序的入口,被jvm调用。
五、成员变量和局部变量的区别:
1、成员变量直接定义在类中;局部变量定义在方法中,参数上,语句中。
2、成员变量在这个类中有效;局部变量只在自己所属的大括号内有效,大括号结束,局部变量失去作用域。
3、成员变量存在于堆内存中,随着对象的产生而存在,消失而消失;局部变量存在于栈内存中,随着所属区域的运行而存在,结束而释放。
六、构造函数和一般函数有什么区别呢?
1、两个函数定义格式不同。
2、构造函数是在对象创建时,就被调用,用于初始化,而且初始化动作只执行一次。
一般函数,是对象创建后,需要调用才执行,可以被调用多次。
七、创建一个对象都在内存中做了什么事情?
1、先将硬盘上指定位置的Person.class文件加载进内存。
2、执行main方法时,在栈内存中开辟了main方法的空间(压栈-进栈),然后在main方法的栈区分配了一个变量p。
3、在堆内存中开辟一个实体空间,分配了一个内存首地址值。new
4、在该实体空间中进行属性的空间分配,并进行了默认初始化。
5、对空间中的属性进行显示初始化。
6、进行实体的构造代码块初始化。
7、调用该实体对应的构造函数,进行构造函数初始化。
8、将首地址赋值给p ,p变量就引用了该实体。(指向了该对象)
-是什么意思

用java进行面向对象编程,面向对象是什么意思,请通俗一点解释


通俗一点说就是你可以设定一个类,比如汽车类Car。汽车有很多属性,比如颜色color,品牌brand。
然后呢,你new一个对象出来。Car myCar=new Car()
类具体到某一个特定的个体的时候,就是一个对象了。
我们可以给myCar设定颜色和品牌,还可以让它干好多别的事情。
再说人类。人类是一个很大的群体,但是特定到某一个人,比如你,比如我,比如小明,张三,李四,每个特定的人,都是一个对象,他属于“人”这个类
你先明白java中类的概念。类具体到某个实例,就是对象了
-面向对象

java面向对象思想如何理解


从现实世界中客观存在的事物(即对象)出发来构造软件系统,并在系统构造中尽可能运用人类的自然思维方式,强调直接以问题域(现实世界)中的事物为中心来思考问题,认识问题,并根据这些事物的本质特点,把它们抽象地表示为系统中的对象,作为系统的基本构成单位(而不是用一些与现实世界中的事物相关比较远,并且没有对应关系的其它概念来构造系统)。这可以使系统直接地映射问题域,保持问题域中事物及其相互关系的本来面貌。
  它可以有不同层次的理解:
  从世界观的角度可以认为:面向对象的基本哲学是认为世界是由各种各样具有自己的运动规律和内部状态的对象所组成的;不同对象之间的相互作用和通讯构成了完整的现实世界。因此,人们应当按照现实世界这个本来面貌来理解世界,直接通过对象及其相互关系来反映世界。这样建立起来的系统才能符合现实世界的本来面目。
  从方法学的角度可以认为:面向对象的方法是面向对象的世界观在开发方法中的直接运用。它强调系统的结构应该直接与现实世界的结构相对应,应该围绕现实世界中的对象来构造系统,而不是围绕功能来构造系统。
  从程序设计的角度来看,面向对象的程序设计语言必须有描述对象及其相互之间关系的语言成分。这些程序设计语言可以归纳为以下几类:系统中一切皆为对象;对象是属性及其操作的封装体;对象可按其性质划分为类,对象成为类的实例;实例关系和继承关系是对象之间的静态关系;消息传递是对象之间动态联系的唯一形式,也是计算的唯一形式;方法是消息的序列。
  面向对象
  面向对象(Object
Oriented,OO)是当前计算机界关心的重点,它是90年代软件开发方法的主流。面向对象的概念和应用已超越了程序设计和软件开发,扩展到很宽的范围。如数据库系统、交互式界面、应用结构、应用平台、分布式系统、网络管理结构、CAD技术、人工智能等领域。
  谈到面向对象,这方面的文章非常多。但是,明确地给出对象的定义或说明对象的定义的非常少——至少我现在还没有发现。其初,“面向对象”是专指在程序设计中采用封装、继承、抽象等设计方法。可是,这个定义显然不能再适合现在情况。面向对象的思想已经涉及到软件开发的各个方面。如,面向对象的分析(OOA,Object
Oriented
Analysis),面向对象的设计(OOD,Object
Oriented
Design)、以及我们经常说的面向对象的编程实现(OOP,Object
Oriented
Programming)。许多有关面向对象的文章都只是讲述在面向对象的开发中所需要注意的问题或所采用的比较好的设计方法。看这些文章只有真正懂得什么是对象,什么是面向对象,才能最大程度地对自己有所裨益。这一点,恐怕对初学者甚至是从事相关工作多年的人员也会对它们的概念模糊不清。
  面向对象是当前计算机界关心的重点,它是90年代软件开发方法的主流。面向对象的概念和应用已超越了程序设计和软件开发,扩展到很宽的范围。如数据库系统、交互式界面、应用结构、应用平台、分布式系统、网络管理结构、CAD技术、人工智能等领域。
-是什么意思

如何理解JAVA中的面向对象谢谢!


java是一种面向对象的语言。也就是说,这种程序设计,把现实中的所有的问题都当做一个个对象来解决,每个对象都有其独立的属性和方法,每个对象之间具有一定的联系,在面向对象设计编程中,不需要考虑对象的实现细节,每个对象都有自己的任务和功能。比如说汽车是一个对象,飞机也是一个对象;汽车具有后备箱、方向盘和发动机等属性,飞机有机翼、操作台等等属性,如果程序想实现能够根据汽车状态输出相应语句,比如前进、后退,那么实现这个功能的具体代码成为方法,对应的飞机也可以有自己的方法比如起飞、下降等。飞机和汽车都属于交通工具,他们某些地方具有共性就是有联系的意思,交通工具包含汽车飞机等对象。。。三言两语不知道你能明白多少,建议还是看书好好去理解了,比如《Thinking in java》,《java核心基础技术卷I II》。
-面向对象

Java高手是如何理解面向对象思想的


个人理解:把写一个程序想象成做一张桌子,使用面向过程的思路:桌子,要用木头做,所以我要种树,数种好了,我要砍木头,sorry,没铁,开个铁矿先,有矿石了,造个炼铁房,炼好铁,做成锯子,锯木,做铁锤,做钉子,sorry,我不会装桌子,去学学木工,OK。。桌子做好了
接下来是面向对象,我要做桌子,要木头,简单,从建材市场买,没铁钉铁锤,简单,五金商店买,不会做?请个木工,OK。桌子完成
所谓面向对象,书上说的都是关于对象的概念,这东西很抽象,难以理解,很简单的一个思路,如上例,我要木头,从建材市场这个对象拿,调用建材市场这个对象中出售木头这个方法,返回我一个木头,至于建材市场的木头哪来的,我不知道,也不用知道,为啥这个社会有各行各业?他们全都是对象,都有一个方法,返回该职业能返回给社会的事物,之所以说面向对象更接近于人的正常思维,妙处就在这,我们把能拿到我们想要的东西的出处抽取成一个对象,我们直接访问它,拿到我们要的东西,它又从它该拿到东西的对象处拿东西,看似互不相干,却又有很多关系,这就是面向对象,记住,每一个对象,一个方法,只做它自己该做的事,其他的,交给其他的方法,其他的对象,层次理清楚,你能写出很棒的程序
可以交流心得QQ:1101047
-是什么意思

Java 面向对象理解


 java语言中有三个典型的面向对象的特性:封装性、继承性和多态性。1. 封装性
  java语言中,对象就是对一组变量和相关方法的封装,其中变量表明了对象的状态,方法表明了对象具有的行为。通过对象的封装,实现了模块化和信息隐藏。通过对类的成员施以一定的访问权限,实现了类中成员的信息隐藏。
◇ java类中的限定词
  java语言中有四种不同的限定词,提供了四种不同的访问权限。
  1) private
  类中限定为private的成员,只能被这个类本身访问。
  如果一个类的构造方法声明为private,则其它类不能生成该类的一个实例。
  2) default
  类中不加任何访问权限限定的成员属于缺省的(default)访问状态:friend,可以被这个类本身和同一个包中的类所访问。
3) protected
  类中限定为protected的成员,可以被这个类本身、它的子类(包括同一个包中以及不同包中的子类)和同一个包中的所有其他的类访问。
4) public
  类中限定为public的成员,可以被所有的类访问。
【表3-1】 java中类的限定词的作用范围比较
同一个类
同一个包
不同包的子类
不同包非子类
private
*
default
*
*
protected
*
*
*
public
*
*
*
*2. 继承性
  通过继承实现代码复用。Java中所有的类都是通过直接或间接地继承java.lang.Object类得到的。继承而得到的类称为子类,被继承的类称为父类。子类不能继承父类中访问权限为private的成员变量和方法。子类可以重写父类的方法,及命名与父类同名的成员变量。但Java不支持多重继承,即一个类从多个超类派生的能力。
◇ 成员变量的隐藏和方法的重写
  子类通过隐藏父类的成员变量和重写父类的方法,可以把父类的状态和行为改变为自身的状态和行为。
例如:
  class SuperClass{
    int x; …
    void setX( ){ x=0; } …
  }
  class SubClass extends SuperClass{
    int x;   //隐藏了父类的变量x
    …
    void setX( ) { //重写了父类的方法 setX()
    x=5; } ….
  }
  注意:子类中重写的方法和父类中被重写的方法要具有相同的名字,相同的参数表和相同的返回类型,只是函数体不同。
  ◇ super
  java中通过super来实现对父类成员的访问,super用来引用当前对象的父类。Super 的使用有三种情况:
  1)访问父类被隐藏的成员变量,如:
    super.variable;
  2)调用父类中被重写的方法,如:
    super.Method([paramlist]);
  3)调用父类的构造函数,如:
    super([paramlist]);【例3-5】
  import java.io.*;
  class SuperClass{
    int x;
    SuperClass( ) {
     x=3;
     System.out.println(“in SuperClass : x=“ +x);
    }
     void doSomething( ) {
     System.out.println(“in SuperClass.doSomething()“);
    }
  }
  class SubClass extends SuperClass {
    int x;
    SubClass( ) {
     super( );    //调用父类的构造方法
     x=5;      //super( ) 要放在方法中的第一句
     System.out.println(“in SubClass :x=“+x);
    }
     void doSomething( ) {
     super.doSomething( ); //调用父类的方法
     System.out.println(“in SubClass.doSomething()“);
     System.out.println(“super.x=“+super.x+“ sub.x=“+x);
    }
  }
  public class Inheritance {
     public static void main(String args) {
     SubClass subC=new SubClass();
     subC.doSomething();
    }
  }3. 多态性
  在java语言中,多态性体现在两个方面:由方法重载实现的静态多态性(编译时多态)和方法重写实现的动态多态性(运行时多态)。
  1) 编译时多态
  在编译阶段,具体调用哪个被重载的方法,编译器会根据参数的不同来静态确定调用相应的方法。
  2) 运行时多态
  由于子类继承了父类所有的属性(私有的除外),所以子类对象可以作为父类对象使用。程序中凡是使用父类对象的地方,都可以用子类对象来代替。一个对象可以通过引用子类的实例来调用子类的方法。
  ◇ 重写方法的调用原则:java运行时系统根据调用该方法的实例,来决定调用哪个方法。对子类的一个实例,如果子类重写了父类的方法,则运行时系统调用子类的方法;如果子类继承了父类的方法(未重写),则运行时系统调用父类的方法。
在例3-6中,父类对象a引用的是子类的实例,所以,java运行时调用子类B的callme方法。【例3-6】
  import java.io.*;
  class A{
     void callme( ) {
      System.out.println(“Inside A’s callme()method“);
     }
  }
  class B extends A{
     void callme( ) {
      System.out.println(“Inside B’s callme() Method“);
     }
  }
  public class Dispatch{
     public static void main(String args) {
      A a=new B();
      a.callme( );
     }
  }
◇ 方法重写时应遵循的原则:
  1)改写后的方法不能比被重写的方法有更严格的访问权限(可以相同)。
  2)改写后的方法不能比重写的方法产生更多的例外。
4. 其它
  ◇ final 关键字
  final 关键字可以修饰类、类的成员变量和成员方法,但final 的作用不同。
  1) final 修饰成员变量:
  final修饰变量,则成为常量,例如
  final type variableName;
  修饰成员变量时,定义时同时给出初始值,且以后不能被修改,而修饰局部变量时不做要求。
  2) final 修饰成员方法:
  final修饰方法,则该方法不能被子类重写
  final returnType methodName(paramList){
  …
  }  3) final 类:
  final修饰类,则类不能被继承
  final class finalClassName{
  …
  }
  ◇ 实例成员和类成员
  用static 关键字可以声明类变量和类方法,其格式如下:
  static type classVar;
  static returnType classMethod({paramlist}) {
  …
  }
 如果在声明时不用static 关键字修饰,则声明为实例变量和实例方法。
  1) 实例变量和类变量
  每个对象的实例变量都分配内存,通过该对象来访问这些实例变量,不同的实例变量是不同的。
  类变量仅在生成第一个对象时分配内存,所有实例对象共享同一个类变量,每个实例对象对类变量的改变都会影响到其它的实例对象。类变量可通过类名直接访问,无需先生成一个实例对象,也可以通过实例对象访问类变量。
  2) 实例方法和类方法
  实例方法可以对当前对象的实例变量进行操作,也可以对类变量进行操作,实例方法由实例对象调用。
  但类方法不能访问实例变量,只能访问类变量。类方法可以由类名直接调用,也可由实例对象进行调用。类方法中不能使用this或super关键字。
  例3-7 是关于实例成员和类成员的例子。
【例3-7】
  class Member {
    static int classVar;
    int instanceVar;
    static void setClassVar(int i) {
     classVar=i;
     // instanceVar=i; // 类方法不能访问实例变量
    }
    static int getClassVar()
     { return classVar; }
    void setInstanceVar(int i)
     { classVar=i; //实例方法不但可以访问类变量,也可以实例变量
     instanceVar=i; }
     int getInstanceVar( )
     { return instanceVar; }
    }
    public class MemberTest{
     public static void main(String args) {
         Member m1=new member();
         Member m2=new member();
         m1.setClassVar(1);
         m2.setClassVar(2);
         System.out.println(“m1.classVar=“+m1.getClassVar()+“
                   m2.ClassVar=“+m2.getClassVar());
         m1.setInstanceVar(11);
         m2.setInstanceVar(22);
         System.out.println(“m1.InstanceVar=“+m1.getInstanceVar
              ()+“ m2.InstanceVar=“+m2.getInstanceVar());
     }
    }
◇ 类java.lang.Object
  类java.lang.Object处于java开发环境的类层次的根部,其它所有的类都是直接或间接地继承了此类。该类定义了一些最基本的状态和行为。下面,我们介绍一些常用的方法。
  equals() :比较两个对象(引用)是否相同。
  getClass():返回对象运行时所对应的类的表示,从而可得到相应的信息。
  toString():用来返回对象的字符串表示。
  finalize():用于在垃圾收集前清除对象。
  notify(),notifyAll(),wait():用于多线程处理中的同步。
-面向对象

如何理解java的面向对象思想


比如说,我们要用程序来描述一个人。如果是以往的结构化编程,我们可能会这样;
例如用C语言的话,可能会建立一个结构体:
struct Person{
姓名;
年龄;
等等;...
}
然后用定义的一些函数来描述他的行为。比如void walk(struct p); void eat(struct p);等等。
然后使用 walk(p) 来描述行走,使用eat(p)来描述吃饭等。
这样不利于程序结构的维护。开发效率也不高。
但是用java面向对象方式,这一切就显得自然了。我们建立一个类,表示人:
class Person{
姓名
性别
体重
身高等..(人类都有的属性)
吃饭
睡觉 等行为(也就是人类都有的行为)
}
然后将类产生一个实例,就产生了一个’人’的对象。
Person xiaobai = new Person(“小白“,身高,体重...等参数);
如果要描述祖先后代的关系,很简单。只要让人类继承自Animal即可。
class Animal{
......
}
class Person extends Animal{
.......
}
这样动物有的属性和行为,人不用定义也可以拥有,符合自然规律~哈哈
面向对象不是java特有的,只是一种思想,如果你愿意,用结构化语言C语言也可以写出面向对象的代码。
-是什么意思