1、面向对象程序设计面向对象程序设计程序设计方法程序设计方法公共数据函数函数函数函数算法数据结构数据方法方法数据方法方法过程式程序设计OOP程序设计对象消息消息程序设计方法程序设计方法l面向过程的程序设计l面向过程的程序遵循面向过程的问题求解方法l其中心思想是用计算机能够理解的逻辑来描述和表达待解决的问题及其具体的解决过程。l算法+数据结构l数据结构利用计算机的离散逻辑来量化表达需要解决的问题。l而算法则研究如何快捷、高效地组织解决问题的具体过程。l面向过程面向机器程序设计方法程序设计方法l面向对象的程序设计l它能够用计算机逻辑来模拟、描述系统本身,包括系统的组成,系统的各种可能状态,以及系统中可
2、能产生的各种过程与过程引起的系统状态切换。l面向对象的程序设计是以要解决的问题中所涉及到的各种对象为主要考虑因素。l对象是一种看问题的观点,是对现实世界各种元素的一种抽象。对象既含数据又含功能,因此具有自身处理数据的能力。对象被认为是迄今为止最接近真实事物的数据抽象。对象的几个特征对象的几个特征l原则上,可以将所要解决的问题中的任何一个“概念组件”在程序中表示为一个对象。l所谓 对一个对象发信息,就是调用该对象的一个方法。l对象+消息对象的属性与方法对象的属性与方法l面向对象程序设计中的对象是现实世界对象的模型化,它同样具有状态和行为。l对象的状态用属性来维护,l对象的行为用方法来实现。l因此
3、可以简单地讲,对象是面向对象的程序设计模式,它由描述状态的属性(变量)和用来实现对象行为的方法(代码)组成。l几种叫法l属性 静态属性 域 成员变量 状态l方法 动态属性 成员方法 行为对象与类对象与类l类(Class)是同种对象的集合与抽象l类是对象的抽象及描述,它是具有统一属性和方法的多个对象的统一描述体,是用来定义一组对象共有属性和方法的模板。l类是用来创建对象实例的样板,它包含所创建对象的状态描述和方法的定义。类是一个型,而对象则是这个型的一个实例。l类是静态概念,而对象则是一个动态概念,因为只有在运行时才给对象分配空间,对象才真正存在。对象是类的唯一性实例对象是类的唯一性实例现实世界
4、 实体抽象数据类型 计算机世界对象 类抽象映射 计算机逻辑的实现实例化抽象概念世界接口与实现接口与实现l类是一种封装技术。l如果属性或方法被定义为public,它就是接口的一部分,其他类可以直接访问它。l如果属性或方法被定义为private,它就是实现的一部分。只有类自己的方法可以访问它。l对象要注意保护自己的数据(私有属性,公有方法)。对象通过它们的方法管理,实现由编程人员控制。l通过接口与对象发生作用,内部实现不影响接口(汽车,内部变化不影响驾驶)程序一部分变化不会影响其他部分。l复用l事先写好的操作可在整个项目中使用l重用比重写更容易对象与类对象与类几种相互关系几种相互关系l包含关系l当
5、对象A是对象B的属性时,我们称对象B包含对象A。l关联关系l当对象A的引用是对象B的属性时,我们称对象A和对象B之间是关联关系。l类之间的继承关系lB类继承了A类,就是继承了A类的属性和方法。lA类称之为父类,B类称之为子类。面向对象程序设计基础主要内容主要内容l 抽象l 封装l 继承l 多态l 类定义l 重载l 包l 接口OOP的主要特点的主要特点l抽象l去除对象中与主旨无关的次要部分,而 仅仅抽取出与研究有关的内容(数据抽象)OOP的主要特点的主要特点l封装(encapsulation)l实现了信息的隐藏及安全性l提高了程序的模块化,且易于维护封装封装-信息隐藏信息隐藏l封装 是一种组织软
6、件的方法。其基本思想是把客观世界中联系紧密的元素及相关操作组织在一起,使其相互关系隐藏在内部,而对外仅仅表现为与其他封装体间的接口。从而构造出具有独立含义的软件实现。l封装并不是一个新的概念,但在面向对象的程序设计中提出了一种全新的封装方法 类封装封装-信息隐藏信息隐藏l封装 就是利用抽象数据类型将数据和基于数据的操作封装在一起,数据被保护在抽象数据类型的内部,系统的其他部分只有通过包裹在数据外面的被授权的操作,才能与这些抽象数据类型交流和交互。l在面向对象的程序设计中,抽象数据类型是用“类”来代表的。封装封装-信息隐藏信息隐藏l每个类里都封装了相关的数据和操作。在实际的开发过程中,类多用来构
7、建系统内部的模块。l由于封装特性把类内的数据保护得很严密,模块与模块间仅通过严格控制的界面进行交互,使它们之间耦合和交叉大大减少,从而降低了开发过程的复杂性,提高了效率和质量,减少了可能的错误,同时也保证了程序中数据的完整性和安全性。OOP的主要特点的主要特点l继承(inheritance)l体现了对现实世界的抽象模拟l提高了代码的复用性交通工具车船飞机汽车火车父类/超类(superclass)子类(subclass)Java仅支持单重继承,但可通过接口实现多重继承OOP的主要特点的主要特点l多态(polymorphism)l用同一个名字调用实现不同操作的方法l方式1:不同的类之间的同名方法
8、如:中国人/日本人/美国人 说话l方式2:参数不同的同名方法l使用方便,且降低了维护和编程量Java中的类中的类l几个概念l类:同种对象的集合与抽象 l系统类库中已定义好的类:是系统提供 的已实现的标准类的集合,是Java的API,它可帮助开发者方便、快捷地开发Java程序。l用户自定义的类 针对特定问题l子类、父类Java中的类中的类lJava中的类结构l基类:所有Java的类都派生自ObjectlJava的类可组织在包(package)中lJava提供的标准类库分布在一系列的包中,如java.lang,java.util,等 l编程的过程就是继承基类或标准类而创建、定义特殊子类的过程Jav
9、a中类的声明中类的声明l类说明语法:类修饰符 class 类名 extends 父类名 implements 接口名 成员变量定义;方法定义;类体Java中类的声明中类的声明l类修饰符(Modifier):lpublic:允许其他类(没有限制)访问本类,一个 源文件仅可以有一个public类l缺省:可被当前包中的其他类访问labstract:没有实例的抽象概念类,是它的所有子类 的公共属性和公共方法的集合lfinal:不能再被扩展,不能有子类的类;易于安全 性的实现,或用于创建固定功能的类l父类继承声明:extends 父类名l实现接口(interface):implements 接口名Jav
10、a中类的声明中类的声明l例:public abstract class shape class rectangle extends shape final class roundrect extends rectangle 创建对象创建对象l对象(实例instance):以类为模板创建的 具体实例(实际个体)l创建某个类的具体对象(类似变量声明)类名 欲创建的对象名new 类名(参数表);例如:String s=new String(“Hello!”);类的成员变量的声明类的成员变量的声明l声明成员变量(member)的语法修饰符 数据类型 变量名;l引用:对象名.变量名l修饰符l访问控制符l
11、public:可被所有其他类引用lprivate:仅可被该类自身引用和修改,不能被其他任何类(包括该类的子类)引用,它提供了最高级别的保护。成员变量的声明成员变量的声明lprotected:该类自身、子类、同一包中的其他类lprivate protected:该类自身、子类 注:private protected仅1.0.2支持,1.1之后不再支持l缺省:本包中的类lstatic:类成员变量,对所有的实例一致,引用时前缀 可使用类名或对象名lfinal:数值不变常量,定义同时应对其进行初始化 类成员变量(静态变量)类成员变量(静态变量)l静态变量为类的各实例共享的变量。static 静态变量名
12、;l位于类的内存区域中,为该类的各个对象共享.l无此限定符的变量是实例变量。class ex int i;static int j;static final int k=10;-l final 常量可同时定义为static类exjk=10对象1i :3对象2i :5类成员变量(静态变量)类成员变量(静态变量)l实现各实例之间的通讯 对于该类的任何一个对象访问该静态变量时,取得的都是相同的值l跟踪创建的实例数 public class Count private int serial;/实例变量 private static int counter=0;/静态变量 public Count()c
13、ounter+;serial=counter;l静态变量类似于某些语言中的全局变量类成员变量(静态变量)类成员变量(静态变量)l非private 的静态变量无须创建实例就可以从类的外部访问。class StaticVar static int x=100 ;public class test public void m()int m=StaticVar.x;方法的声明方法的声明l定义对类内成员变量(数据)的操作l方法的声明语法:修饰符 返回类型 方法名(参数列表)throws 例外名 方法体;l方法是类的动态属性,标志了类所具有的功能和操作类的方法定义规则类的方法定义规则l形式参数是方法从调用
14、它的环境输入的数据。l返回值是方法在操作完成后返还给调用它的环境的数据。l要指定方法返回值类型。如没有返回值,类型要写 voidl方法名相同,但参数不同,是不同的方法。l与类名相同的所有方法都是类的构造方法。方法体的定义方法体的定义l在方法中定义的变量称为局部变量。l其生命周期:执行进入方法体时建立,退出方法时撤消。l局部变量使用之前必须初始化。l在方法体中可以访问所有的类属性,可以调用所有类中定义的方法。l方法可以递归调用。方法的声明方法的声明l修饰符(Modifier):l访问控制符:public、private、protected、private protectedlstatic:静态方
15、法,又称类方法l使用类名或对象名作为前缀,建议使用类名l在方法体中只能使用static变量和static方法labstract:只有方法头,而没有具体的方法体和操作实现的方法,要在子类中通过重新定义(override)来实现lfinal:不能被重新定义(override)的方法l访问控制符是一组起到限定类、域或方法是否可以被程序里的其他部分访问和调用的修饰符。l类访问控制符l公共类 :public 类名 l一般类(缺省)l一个类被声明为公共类,表明它可以被所有的其他类所访问和引用。程序的其他部分可以创建这个类的对象、访问这个类的内部可见成员变量和调用它的可见方法l一般类只能被同一包中的类访问和
16、引用。l定义在同一个程序中的所有类属于一个包。访问控制符访问控制符l一个类作为整体对程序的其他部分可见,并不能代表类内的所有成员变量和方法也同时对程序的其他部分可见,前者只是后者的必要条件 l成员变量和方法的可见性域和方法的访问限定符域和方法的访问限定符只限在本类内使用。private可被同包中其他类使用。可 被子类继承(包括位于不同包中的子类)protected公共变量和公共方法,可被任何类使用。public可被同包中其他类使用。无访问限定符域和方法的访问限定符域和方法的访问限定符l为了使对象具有良好的封装性,一般将类的实例变量设计成私有。l为了使其它类或对象能够访问私有实例变量,本类必须提
17、供访问私有变量的方法(公共方法)。l按照惯例,读私有变量的方法取名为get 写私有变量的方法取名为 set 方法的声明(续)方法的声明(续)l返回类型:void、returnl参数列表:参数类型可为类类型lthrows:l通告本方法中会产生的例外(异常)类型,提醒调用者要对相应的可能例外进行处理。当执行此方法并发生了例外时,程序会转入调用者编制的例外处理程序段。方法的参数方法的参数l参数是值传递 对象的内容可以改变,但对象的引用决不会改变。l方法的参数可以与类的成员变量同名,这时,参数在方法体中将隐藏同名的成员变量。class circle int x,y,radius;setCircle(i
18、nt x,int y,int radius)值传送与地址传送值传送与地址传送ABABAB引用类型值传送基本类型值传送地址传送3.143.143.140 x2F0 x2F方法的说明方法的说明l为Employee类增加打印方法将数据和代码封装在一个单一的实体中。class Employee String name;int age;float salary;void print()System.out.println(name +“年龄为:”+age +“月薪为:”+salary);/class 对象方法的含义对象方法的含义 Employee emp=new Employee();emp.name=
19、“张立”;emp.age=21;emp.salary=528.37F;l一旦对象被建立并被初始化,就可以调用该方法打印这个对象的数据。emp.print();l对象emp执行print 方法操作自己的数据。l向对象发消息,让对象做某件事。this与与superlthis和super是常用来指代子类对象和父类对象的关键字。Java系统默认,每个类缺省地具有null、this和super三个域,所以在任意类中都可以不加说明而直接使用它们。lthis表示的是当前对象本身,更确切地说,this代表了当前对象的一个引用。利用this可以使用当前对象的域,调用当前对象的方法。lsuper 表示的是当前对象
20、的直接父类对象,是当前对象的直接父类对象的引用。方法中使用方法中使用this class Banana void f(int i).Banana a=new Banana();b=new Banana();a.f(1);b.f(2);l方法如何知道是处理哪个对象?l编译做了一些内部处理 Banana.f(a,1);Banana.f(b,2);l把一个隐含的参数传给了方法指向被操作对象的引用。thislthis 只能在方法中使用,表示当前对象,或类的当前实例。lthis 适用于一些特殊的场合。l例:public class MyDate int day,month,year;public voi
21、d born()Birthday bd=new Birthday(this);Java中的多态中的多态l多态:同一程序中同名的不同方法共存l可以通过子类对父类方法的覆盖实现多态l可以利用重载(overload)在同一个类中定义多个同名的方法l多态情况下进行方法调用时,如何区分这些同名的不同方法l不同类中的同名方法:冠以类名以示区别l同类中的同名方法:用不同的参数列表(参数的个数,类型,顺序的不同)来区别同名的不同方法多态多态l例:Shapes.javal三个类Circle、Square、Triangle均有draw()方法和erase()方法,但不同类的方法的具体操作其实并不相同,实现了多态。
22、draw()erase()draw()erase()draw()erase()Overloding方法重载方法重载l用同一个名字来表示不同的方法。这些方法同名的原因,是因为它们的最终功能和目的都相同,但由于在完成同一功能时,可能遇到不同的具体情况,所以需要定义含不同的具体内容的方法。l方法名必须相同(是同一类中定义同名方法的情况)。l方法的参数必须不同(同名不同方法是靠不同形式的参数列表来区分,包括形式参数的个数、类型、顺序的不同)。l返回类型可以不同,但不是重载的标志。l利用“重名”现象提高程序的抽象度和简洁性。方法的重载方法的重载l例:(相同类型的工作,不同的参数)public void
23、println(int i);public void println(float f);public void println(String s);lInteger类 String toString();static String toString(int i);lDouble 类 String toString();static String toString(double d);在一个类中,不可以存在两个只有返回值不同的方法 构造方法(构造方法(constructor)l问题的提出lJava试图在每个对象一诞生时,就给它一确定的状态,但有时这种系统的缺省初值不合适;所以在创建一个新对象时,
24、需用构造方法完成合法的初始化,使类内成员的初始化工作不依赖于外界完成。构造方法构造方法l构造方法是一种特殊的成员方法,在创建每个新的类对象时自动执行,以保证新对象的各成员有合法、确定的数值。l构造方法的名字就是类的名字。l构造方法没有返回类型。l主要用于完成变量的初始化;另外,一个类中可以存在多个构造方法(重载),这些构造方法之间可以互相调用,当一个构造方法调用另一个构造方法时,要使用关键字this,同时这个调用语句应该是整个构造方法的第一条可执行语句。构造方法构造方法l构造方法只能在创建类对象时由系统隐含调用,而不能直接引用;l 类对象创建时,利用运算符 new 在内存中开辟专用空间,存放指
25、定的类的实例(即对象),这时会自动执行类的构造方法,初始化新对象的成员变量。定义构造方法定义构造方法 Employee(String n,int a,float s)name=n;if(a=18&a Lunch()PortableLunch()Bread()Cheese()Lettuce()Sandwich()抽象与抽象类抽象与抽象类l程序员可以先创建一个定义共有属性和方法的一般类,再从一般类派生出具有特性的新类。l抽象类实际上是所有子类的公共域和公共方法的集合,而每一个子类则是父类的特殊化,是对公共域和方法在功能、内涵方面的扩展和延伸。类继承树类继承树Objectclassabstract
26、class classfinal classclassJava单重继承抽象类与最终类抽象类与最终类labstract 抽象类 没有具体对象的概念类 l较高层次的概括l抽象类的作用是让其他类来继承它的抽象化的特征。l在程序中不能用抽象类作为模板来创建对象。lfinal 最终类 该类不能有子类。电话卡类无卡号类有卡号类磁卡IC卡校园201卡IP卡200卡方法覆盖方法覆盖(overriding)l在面向对象的程序设计中,子类可以把从父类那里继承来的某个方法改写,形成同父类方法同名、解决的问题也相似、但具体实现和功能却不尽一致的新方法。l定义与父类完全相同的方法,实现对父类方法的覆盖:l完全相同的方法
27、名l完全相同的参数列表l完全相同类型的返回值l注意:在满足上述三个条件同时,还必须保证:访问权限不能缩小,抛出的例外要相同包(包(package)l利用面向对象技术开发系统时,通常需要定义许多类共同工作,为了更好地管理这些类,JAVA中引入了包的概念。l象文件夹把各种文件组织在一起一样,JAVA中的包把各种类组织在一起,使得程序功能清楚,结构分明。包(包(package)l在操作系统中,目录用来组织文件,设置权限。lJava利用包来组织相关的类,并控制访问权限。l包是一种松散的类的集合。一般不要求处于同一个包中的类有明确的相互关系,如包含、继承等等。l由于同一包中的类在缺省情况下可以互相访问,
28、所以为了方便编程和管理,通常把需要在一起工作的类放在一个包里。l利用包来管理类,可实现类的共享与复用(类库)。包与目录包与目录l一个包要放在指定目录下。classpath 指定搜寻包的路径。l一个包可以包含若干个类文件,还可包含若干包。l包名本身又对应一个目录(用一个目录表示)。l包名可以有层次,以小数点分割。包名一般全小写(类名第一个字母大写)。包(包(package)l创建 package package 包名;l每一个class在编译的时候被指定属于某一特定的package,用关键字package说明:package srd.math;/命名要注意唯一性,可使用WWW域名 public
29、class ComplexNumber l如果package未指定,则所有的 class都被组合到一个未命名的缺省package中,不能被其他包中的类引用lpackage说明必须是非注释非空行的第一行包(包(package)l创建包就是在当前文件夹下创建一个子文件夹,以便存放包中包含的所有类的.class文件。l上面创建的包语句中的符号“.”代表了目录分割符,即这个语句创建了两个文件夹。第一个是当前文件夹下的子文件夹srd;第二个是srd下的子文件夹 math,当前包中的所有类就存放在这个文件夹中。包(包(package)l使用包:使用其他包中的class,需l在引用类之前冠以包名作前缀l用i
30、mport 语句将此包中的某些或所有class加载入当前程序:import srd.math.ComplexNumber;import srd.math.*;l包与文件系统l每个包对应一个同名的路径,此包中所有class编译生成的.class文件都在此目录中;此目录系统不会自动生成,必须手工创建使用其他包中的类使用其他包中的类limport语句将指定包中的类引入当前的程序中,即告诉编译到哪去找程序中使用的类。l import语句必须出现在所有类定义之前。例:import java.util.*;该语句引入整个utility 类库(标准Java库的一部分)例:import java.util.V
31、ector;该语句只引入Vector类,但utility类库中的其他类不可用。接口接口l“接口”是抽象类的概念。l接口中的方法都是没有方法体的抽象方法。l接口中只能定义 static final 属性。l接口定义的仅仅是实现某一特定功能的一组方法的对外接口和规范,而并没有真正地实现这个功能。l接口的功能实现是在“继承”了这个接口的各个类中完成的,由这些类来具体定义接口中所有抽象方法的方法体。l通常把对接口的“继承”称为“实现”。接口(接口(interface)l接口是一种特殊的类,是作为一个整体声明的抽象方法和常量l方法:抽象、无定义的(不必写abstract)l常量:隐含为final和sta
32、tic的 l接口定义 public interface 接口名 extends 父接口名列表 /常量域声明 public static final 域类型 域名=常量值;/抽象方法声明 public abstract 返回值类型 方法名(参数列表);接口(接口(interface)l使用接口l当一个类声明 implements 某一 interface 时,必须具体实现该 interface 中定义的抽象方法,并把此方法定义为public的。l利用接口可实现多重继承l便于设计更合理的类层次,代码更灵活接口的实现接口的实现 public class MyApplet extends Applet
33、 implements Runnable,MouseListener l一个类只能有一个父类,但是它可以同时实现若干个接口。如果把接口理解成特殊的类,那么这个类利用接口实际上就获得了多个父类,即实现了多继承。linstanceof 运算符可用来判断一个对象的类是否实现了某个接口。接口的实现接口的实现一个类要实现接口时,要注意下列问题:l在类的声明部分,用implements关键字声明该类将实现那些接口。l如果实现了某个接口的类不是abstract的抽象类,则在类的定义部分必须实现指定接口的所有抽象方法必须实现指定接口的所有抽象方法,即为所有抽象方法定义方法体。l如果实现了某个接口的类是abst
34、ract的抽象类,则它可以不实现指定接口的所有抽象方法。接口的实现接口的实现l接口的抽象方法的访问控制符为访问控制符为public,所以类在实现方法时,必须显式地使用显式地使用public。l实现接口的类要实现接口的全部方法。如果不需要某个方法,也要定义成一个空方法体的方法。如:public 方法名()接口例接口例 interface CalArea double pi=3.14;double cal(double r);class a implements CalArea public double cal(double r)return pi*r*r ;接口中定义的方法签名接口中定义的方法
35、签名不加任何的修饰符不加任何的修饰符:因为因为必定为必定为public类型类型接口(接口(interface)l例:乐器族谱Music.javaInstrumentWindPercussionStringed我们可以使用接口来实现继承吗?interface Instrument /constant:int i=5;/static&final /Cannot have method definitions:void play();/Automatically public String what();void adjust();class Wind implements Instrument /
36、public cannot be omitted public void play()System.out.println(Wind.play();public String what()return Wind;/注意adjust()与adjust();的区别 public void adjust()接口的应用接口的应用l声明多个类必须实现的方法。l利用接口模拟多继承。l只说明对象的编程接口,而不揭示实际的类体。内部类(内部类(inner classes)l在类体中定义的新的类,称为inner classes内部类的作用主要应用在事件驱动的控制 结构中,如Java1.1的GUI应用内部类(内部
37、类(inner class)l在某个类的内部定义的类称之内部类。l内部类的定义方法l定义命名的内部类:可以在类中(甚至方法中)定义内部类,并在类的内部多次使用(创建多个对象)。l定义匿名内部类(一次性使用):可以在new关键字后定义内部类,并立即创建一个对象l内部类的类文件命名方法 设外层类名为Myclass,则该类的内部类名为:Myclass$c1.class (c1为命名内部类名)Myclass$1.class (表示类中定义的第一个匿名内部类)类中的内部类类中的内部类l在类中如同使用其他类一样使用自己的内部类。l内部类拥有对在外层类中定义的所有属性和方法的访问权。l其他类如果要使用一个类
38、的内部类时,要使用类前缀。方法中的内部类方法中的内部类l内部类还可以定义在一个方法里,其作用域仅限于该方法的范围内(进一步隐藏),在其它方法里定义也没有名字冲突问题。l实现一个接口l在一编写好的代码中加一个类,但又不想公开化。内部类内部类l例:Parcel.javapublic class Parcel class Contents class Destination Parcel类中定义了两个inner classes:Contents和Destination练习练习l1汽车类的创建要求:(1)创建两个接口:DriveControl(定义方法starEngine)和RepairControl
39、(定义方法repair);(2)定义类Car事项两个接口:starEngine方法实现显示输出”Start Engine”,repair方法显示输出”Car is repaired.”;(3)在main()方法中创建实例,调用上述方法。练习练习l2 设计类实现公司员工的类结构要求:(1)定义父类Employee:属性:姓名,年龄,工资 方法:void upSalary(float inc)/涨工资 作,inc为工资增长数目 void getInfo()/显示雇员信息:姓名、年龄、工资 练习练习l2 设计类实现公司员工的类结构要求:(2)定义子类Manager:属性:津贴 方法:void set
40、Allowance(float a)/设置津贴 void getInfo()/显示经理信息:allowance 39.家庭成为快乐的种子在外也不致成为障碍物但在旅行之际却是夜间的伴侣。西塞罗14.放弃,不是生命的绝对。80.把脸迎向阳光,你的面前就不会有阴影。决心改变,生活一定会赐予你新的开始,让你遇见更好的自己!33.房屋别墅只是虚无坟墓才是永远的家。4.别拿自己的无知说成是别人的愚昧!16.不要在你一定会后悔的地方浪费你的生命。39.宁肯本身去包涵别人,莫等别人来包涵本身。46.人生晚吃苦不如早吃苦。人生是很累的,你现在不累,以后就会更累;人生是很苦的,你现在不苦,以后就会更苦。万物相生相
41、克,无下则无上,无低则无高,无苦则无甜。33.我们每个人都应微笑面对人生,没有了怨言,也就不会有哀愁。一个人有了希望,就会对生活充满信心,只要你用美好的心灵看世界,总是以乐观的精神面对人生。60.头脑是日用品,而不是装饰品。5.相信自己,一路风景一路歌,人生之美,正在于此。15.我们听到的一切都是一个观点,不是事实。我们看见的一切都是一个视角,不是真相。92.过去不等于未来。59.比别人多一点执着,你就会创造奇迹。93.患难可以试验一个人的品格;非常的境遇方可显出非常的气节;命运的铁拳击中要害的时候,只有大勇大智的人,才能够处之泰然。莎士比亚29.人处患难之境,如香草之受压榨则芬芳愈烈。9.少年心事当拿云。138.路是自己走出来的,没有什么后悔的理由。79.平安是幸,知足是福,清心是禄,寡欲是寿。43.有志者,事竟成,破釜沉舟,百二秦关终属楚;苦心人,天不负,卧薪尝胆,三千越甲可吞吴。98.无论你觉得自己多么的不幸,永远有人比你更加不幸。44.人的能量=思想+行动速度的平方。70.人只有为自己同时代的人完善,为他们的幸福而工作,他才能达到自身的完善。