对象是类的实例的意思
面向对象
面向对象是一种新兴的程序设计方法,或者说它是一种新的程序设计范型,其基本思想是使用对象,类,继承,封装,消息等基本概念来进行程序设计。
它是从现实世界中客观存在的事物(即对象)出发来构造软件系统,并在系统构造中尽可能运用人类的自然思维方式,强调直接以问题域(现实世界)中的事物为中心来思考问题,认识问题,并根据这些事物的本质特点,把它们抽象地表示为系统中的对象,作为系统的基本构成单位(而不是用一些与现实世界中的事物相关比较远,并且没有对应关系的其它概念来构造系统)。这可以使系统直接地映射问题域,保持问题域中事物及其相互关系的本来面貌。
它可以有不同层次的理解:
从世界观的角度可以认为:面向对象的基本哲学是认为世界是由各种各样具有自己的运动规律和内部状态的对象所组成的;不同对象之间的相互作用和通讯构成了完整的现实世界。因此,人们应当按照现实世界这个本来面貌来理解世界,直接通过对象及其相互关系来反映世界。这样建立起来的系统才能符合现实世界的本来面目。
从方法学的角度可以认为:面向对象的方法是面向对象的世界观在开发方法中的直接运用。它强调系统的结构应该直接与现实世界的结构相对应,应该围绕现实世界中的对象来构造系统,而不是围绕功能来构造系统。
从程序设计的角度来看,面向对象的程序设计语言必须有描述对象及其相互之间关系的语言成分。这些程序设计语言可以归纳为以下几类:系统中一切皆为对象;对象是属性及其操作的封装体;对象可按其性质划分为类,对象成为类的实例;实例关系和继承关系是对象之间的静态关系;消息传递是对象之间动态联系的唯一形式,也是计算的唯一形式;方法是消息的序列。
参考资料:import 是导入包的意思 ,并不是包,包
引用1:面向对象程序设计就是将具有相同属性的一类事物的共同属性提取出来,做成一个类,以后我们只对这个类进行编辑,这一类的事物也就进行编辑了,不用单独编辑每一个属于这个类的对象。这个类是抽象的,比方说提到电脑这个概念,电脑是这一类事物的一个抽象,并不代表一台具体的电脑,同样你定义了一个类,这个类是抽象的,只有当你实例化了一个类的对象时,才变成一个具体的。面向过程中定义的变量叫做变量,面向对象中就叫做一个对象.
引用2:现在,站在抽象的角度,我们给“类”下个定义吧!我的意思是,站在抽象的角度,你回答我“什么是人类?”首先让我们来看看人类所具有的一些特征,这个 特征包括属性(一些参数,数值)以及方法(一些行为,他能干什么!)。每个人都有身高、体重、年龄、血型等等一些属性。人会劳动、人都会直立行走、人都会 用自己的头脑去创造工具等等这些方法!人之所以能区别于其它类型的动物,是因为每个人都具有人这个群体的属性与方法。“人类”只是一个抽象的概念,它仅仅 是一个概念,它是不存在的实体!但是所有具备“人类”这个群体的属性与方法的对象都叫人!这个对象“人”是实际存在的实体!每个人都是人这个群体的一个对 象。老虎为什么不是人?因为它不具备人这个群体的属性与方法,老虎不会直立行走,不会使用工具等等!所以说老虎不是人!
由此可见-------类描述了一组有相同特性(属性)和相同行为(方法)的对象。在程序中,类实际上就是数据类型!例如:整数,小数等等。整数也有 一组特性和行为。面向过程的语言与面相对象的语言的区别就在于,面向过程的语言不允许程序员自己定义数据类型,而只能使用程序中内置的数据类型!而为了模 拟真实世界,为了更好的解决问题,往往我们需要创建解决问题所必需的数据类型!面向对象编程为我们提供了解决方案。
我自己的理解:
我今天看到一个塑料脸盆 和一个不锈钢杯子,还有一个纸杯子.我怎么来分类呢,首先看我需要他们什么样的功能.1.假设我需要他们倒水,所有具备“能倒水”这个对象都叫容器(这就是一个类),但是我如果从另外一个角度看,老婆老公打架,钢杯子可以丢,定为攻击武器类,脸盆可以挡住杯子,可以定为防御武器类,两个都是武器类,而纸杯子不考虑..但是如果作为垃圾仍掉,回收垃圾的人,就把这3种分为3个类,塑料类,金属类和纸类,同属于可垃圾类.
分类的原则是我们需要实现什么功能,比如我们要仍掉这3个垃圾,从这个角度去分类,属性和方法就出来了,同样的属性是,都是废物,方法是能仍掉,所以3个分为一类,而如果是回收垃圾,3个具有不同的属性,和对应不同的回收处理方法,所以3个不能分为一类
java面向对象编程学习总结(2008-06-18 15:26:46)标签:java it 分类:java学习组
重要知识点总结如下:
1,抽象,封装,继承,多态是面向对象程序设计中得四个特点.
2,面向对象得软件开发大体分为:面向对象的分析,面向对象的设计,面向对象的实现.
可概括为如下过程:分析用户需求,从问题中抽取对象模型;细化模型,设计类,包括类的属性和类间的
相互关系,同时观察是否有可以直接引用的已有类或部件;选定一种面向对象的编程语言,具体编码实现
上一阶段类的设计,并在开发过程中引入测试,完善整个解决方案.
3,面向对象程序设计方法的优点是:可重用性,可扩展性,可管理性.
4,类的定义:class前的修饰符分为访问控制符和非访问控制符两大类.访问控制符包括public和private.
非访问控制符包括abstract(抽象),final(最终).
5,final类是最终类,是不能有子类的类.abstract和final不能同时修饰一个类,因为抽象类本身没有具体对象,
需要派生出子类后在创建子类的对象.而最终类不可能有子类.
6,创建对象的格式为: 类名 对象名=new 构造方法(参数);注意前面是类名后面是构造方法.
注意构造方法没有返回类型,也不能写void,主要用于完成类对象的初始化工作,一般不能直接由编程
直接调用,而是用new运算符来调用.
7,如果class前面由public修饰符,则默认构造方法的前面也应该有public修饰符.
8,类中有static修饰的域或方法,可用类名或对象名访问,否则只能用对象名访问.
9,修饰域的访问控制符可以是:public,private,protected,private protected.非访问控制符可以是:
static,final,volatile(易失域)
10,类变量的最本质的特点是:他们是类的域,不属于任何一个类的具体对象实例.不是保存在某个对象实例的内存空间中,而是保存在类的内存区域的公共存储单元中.
11,局部变量是在方法体内声明的,只有当方法被调用时他们才存在,因而只能在本方法内使用,不存在访问控制符,也不能声明为静态变量(static),但可以声明为final变量.局部变量必须初始化.
12,修饰方法的访问控制符可以是:public,private,protected,private protected,修饰方法的非访问控制符可以是:static,final,abstract,native(本地方法),synchronized(同步方法)。
13,用static修饰的变量或方法都为类成员,类成员可以用类名或实例名访问,实例成员只能用实例名来访问。
14,如果一个类中含有抽象方法,则此类必须为抽象类,如果抽象类的子类不为抽象类,则子类必须实现父类的所有抽象方法。抽象方法不能用静态方法和最终方法。抽想方法只有函数头的声明,而用分号来替代方法体,没有大括号。如abstract void abstractmethod();
15,this变量用在一个方法的内部,指向当前对象,当前对象指的是调用当前正在执行的方法的那个对象。super变量是直接指向父类的构造方法,用来引用父类种的变量和方法。(由于他们指的是对象,所以不能通过它来引用类变量和类方法)
16,如果要引用一个包中的多个类,可以用星号来代替。使用星号只能表示本层次的所有类,而不包括子层次下的类。所以经常需要用两条语句来引入两个层次的类:import java.awt.*;import java.awt.event.*;
17,访问修饰符:
--类中限定为public的成员可以被所有的类访问。
--类中先定位private的成员只能被这个类本身访问。同一个类的不同对象可以访问对方的private域变量或调用对方的域方法,这是因为访问保护控制在类的级别上,而不是对象的级别上。
--类中限定为protected的成员可以被这个类本身,它的子类(包括同一个包中和不同包中的子类),以及同一个包中的其他类访问。
--用private protected修饰的成员可以被该类本身访问,也可以被该类的所有子类访问。
--默认访问控制符规定只能被同一个包中的类访问和引用,而不能被其他包的类访问。即他的访问权限是friendly。
18,注意:
----abstract和private,static,final,native不能并列修饰同一个方法。
----abstract类中不能有private修饰的域和方法
----static方法不能处理非static的域。
19,重载方法的参数必须不同,或者是参数个数不同,或者是参数类型不同。重载的多个方法必须返回相同的数据类型。
20,在java中,一个类获取某一接口定义的功能并不是通过直接继承这个接口的属性和方法来实现的。因为接口中的属性都是常量,接口的方法都是没有方法体的抽象方法,没有具体定义操作。重要知识点总结如下:
1,抽象,封装,继承,多态是面向对象程序设计中得四个特点.
2,面向对象得软件开发大体分为:面向对象的分析,面向对象的设计,面向对象的实现.
可概括为如下过程:分析用户需求,从问题中抽取对象模型;细化模型,设计类,包括类的属性和类间的
相互关系,同时观察是否有可以直接引用的已有类或部件;选定一种面向对象的编程语言,具体编码实现
上一阶段类的设计,并在开发过程中引入测试,完善整个解决方案.
3,面向对象程序设计方法的优点是:可重用性,可扩展性,可管理性.
4,类的定义:class前的修饰符分为访问控制符和非访问控制符两大类.访问控制符包括public和private.
非访问控制符包括abstract(抽象),final(最终).
5,final类是最终类,是不能有子类的类.abstract和final不能同时修饰一个类,因为抽象类本身没有具体对象,
需要派生出子类后在创建子类的对象.而最终类不可能有子类.
6,创建对象的格式为: 类名 对象名=new 构造方法(参数);注意前面是类名后面是构造方法.
注意构造方法没有返回类型,也不能写void,主要用于完成类对象的初始化工作,一般不能直接由编程
直接调用,而是用new运算符来调用.
7,如果class前面由public修饰符,则默认构造方法的前面也应该有public修饰符.
8,类中有static修饰的域或方法,可用类名或对象名访问,否则只能用对象名访问.
9,修饰域的访问控制符可以是:public,private,protected,private protected.非访问控制符可以是:
static,final,volatile(易失域)
10,类变量的最本质的特点是:他们是类的域,不属于任何一个类的具体对象实例.不是保存在某个对象实例的内存空间中,而是保存在类的内存区域的公共存储单元中.
11,局部变量是在方法体内声明的,只有当方法被调用时他们才存在,因而只能在本方法内使用,不存在访问控制符,也不能声明为静态变量(static),但可以声明为final变量.局部变量必须初始化.
12,修饰方法的访问控制符可以是:public,private,protected,private protected,修饰方法的非访问控制符可以是:static,final,abstract,native(本地方法),synchronized(同步方法)。
13,用static修饰的变量或方法都为类成员,类成员可以用类名或实例名访问,实例成员只能用实例名来访问。
14,如果一个类中含有抽象方法,则此类必须为抽象类,如果抽象类的子类不为抽象类,则子类必须实现父类的所有抽象方法。抽象方法不能用静态方法和最终方法。抽想方法只有函数头的声明,而用分号来替代方法体,没有大括号。如abstract void abstractmethod();
15,this变量用在一个方法的内部,指向当前对象,当前对象指的是调用当前正在执行的方法的那个对象。super变量是直接指向父类的构造方法,用来引用父类种的变量和方法。(由于他们指的是对象,所以不能通过它来引用类变量和类方法)
16,如果要引用一个包中的多个类,可以用星号来代替。使用星号只能表示本层次的所有类,而不包括子层次下的类。所以经常需要用两条语句来引入两个层次的类:import java.awt.*;import java.awt.event.*;
17,访问修饰符:
--类中限定为public的成员可以被所有的类访问。
--类中先定位private的成员只能被这个类本身访问。同一个类的不同对象可以访问对方的private域变量或调用对方的域方法,这是因为访问保护控制在类的级别上,而不是对象的级别上。
--类中限定为protected的成员可以被这个类本身,它的子类(包括同一个包中和不同包中的子类),以及同一个包中的其他类访问。
--用private protected修饰的成员可以被该类本身访问,也可以被该类的所有子类访问。
--默认访问控制符规定只能被同一个包中的类访问和引用,而不能被其他包的类访问。即他的访问权限是friendly。
18,注意:
----abstract和private,static,final,native不能并列修饰同一个方法。
----abstract类中不能有private修饰的域和方法
----static方法不能处理非static的域。
19,重载方法的参数必须不同,或者是参数个数不同,或者是参数类型不同。重载的多个方法必须返回相同的数据类型。
20,在java中,一个类获取某一接口定义的功能并不是通过直接继承这个接口的属性和方法来实现的。因为接口中的属性都是常量,接口的方法都是没有方法体的抽象方法,没有具体定义操作。重要知识点总结如下:
1,抽象,封装,继承,多态是面向对象程序设计中得四个特点.
2,面向对象得软件开发大体分为:面向对象的分析,面向对象的设计,面向对象的实现.
可概括为如下过程:分析用户需求,从问题中抽取对象模型;细化模型,设计类,包括类的属性和类间的
相互关系,同时观察是否有可以直接引用的已有类或部件;选定一种面向对象的编程语言,具体编码实现
上一阶段类的设计,并在开发过程中引入测试,完善整个解决方案.
3,面向对象程序设计方法的优点是:可重用性,可扩展性,可管理性.
4,类的定义:class前的修饰符分为访问控制符和非访问控制符两大类.访问控制符包括public和private.
非访问控制符包括abstract(抽象),final(最终).
5,final类是最终类,是不能有子类的类.abstract和final不能同时修饰一个类,因为抽象类本身没有具体对象,
需要派生出子类后在创建子类的对象.而最终类不可能有子类.
6,创建对象的格式为: 类名 对象名=new 构造方法(参数);注意前面是类名后面是构造方法.
注意构造方法没有返回类型,也不能写void,主要用于完成类对象的初始化工作,一般不能直接由编程
直接调用,而是用new运算符来调用.
7,如果class前面由public修饰符,则默认构造方法的前面也应该有public修饰符.
8,类中有static修饰的域或方法,可用类名或对象名访问,否则只能用对象名访问.
9,修饰域的访问控制符可以是:public,private,protected,private protected.非访问控制符可以是:
static,final,volatile(易失域)
10,类变量的最本质的特点是:他们是类的域,不属于任何一个类的具体对象实例.不是保存在某个对象实例的内存空间中,而是保存在类的内存区域的公共存储单元中.
11,局部变量是在方法体内声明的,只有当方法被调用时他们才存在,因而只能在本方法内使用,不存在访问控制符,也不能声明为静态变量(static),但可以声明为final变量.局部变量必须初始化.
12,修饰方法的访问控制符可以是:public,private,protected,private protected,修饰方法的非访问控制符可以是:static,final,abstract,native(本地方法),synchronized(同步方法)。
13,用static修饰的变量或方法都为类成员,类成员可以用类名或实例名访问,实例成员只能用实例名来访问。
14,如果一个类中含有抽象方法,则此类必须为抽象类,如果抽象类的子类不为抽象类,则子类必须实现父类的所有抽象方法。抽象方法不能用静态方法和最终方法。抽想方法只有函数头的声明,而用分号来替代方法体,没有大括号。如abstract void abstractmethod();
15,this变量用在一个方法的内部,指向当前对象,当前对象指的是调用当前正在执行的方法的那个对象。super变量是直接指向父类的构造方法,用来引用父类种的变量和方法。(由于他们指的是对象,所以不能通过它来引用类变量和类方法)
16,如果要引用一个包中的多个类,可以用星号来代替。使用星号只能表示本层次的所有类,而不包括子层次下的类。所以经常需要用两条语句来引入两个层次的类:import java.awt.*;import java.awt.event.*;
17,访问修饰符:
--类中限定为public的成员可以被所有的类访问。
--类中先定位private的成员只能被这个类本身访问。同一个类的不同对象可以访问对方的private域变量或调用对方的域方法,这是因为访问保护控制在类的级别上,而不是对象的级别上。
--类中限定为protected的成员可以被这个类本身,它的子类(包括同一个包中和不同包中的子类),以及同一个包中的其他类访问。
--用private protected修饰的成员可以被该类本身访问,也可以被该类的所有子类访问。
--默认访问控制符规定只能被同一个包中的类访问和引用,而不能被其他包的类访问。即他的访问权限是friendly。
18,注意:
----abstract和private,static,final,native不能并列修饰同一个方法。
----abstract类中不能有private修饰的域和方法
----static方法不能处理非static的域。
19,重载方法的参数必须不同,或者是参数个数不同,或者是参数类型不同。重载的多个方法必须返回相同的数据类型。
20,在java中,一个类获取某一接口定义的功能并不是通过直接继承这个接口的属性和方法来实现的。因为接口中的属性都是常量,接口的方法都是没有方法体的抽象方法,没有具体定义操作。
:http://home.51.com/vs5012115/diary/item/10046573.html