版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、写在前边的话:2015年1月23日如鹏线上训练营第三十天什么是格局,格局就是一个人的眼光、胸襟、胆识等心理要素的内在布局!一个人的发展往往受局限,其实“局限”就是格局太小,为其所限。谋大事者必要布大局,对于人生这盘棋来说,我们首先要学习的不是技巧,而是布局。大格局,即以大视觉切入人生,力求站得更高,看的更远、做的更大。大格局决定着事情发展的方向,掌控了大格局,也就掌控了局势。一个人格局大了,未来的路才能宽!如果把人生当做一盘棋,那么人生的结局就由这盘棋的格局决定。想要赢得人生这盘棋的胜利,关键在于把握住棋局。在人与人的对弈中,舍卒保车、飞象跳马.种种棋着就如人生中的每一次博弈,棋局的赢家往往是
2、那些有着先予后取的度量、统筹全局的高度、运筹帷幄而决胜千里的方略与气势的棋手。于丹说得好“成长问题关键在于自己给自己建立生命格局”。为何要有大的格局?局限就是格局大小,为其所限。在今天这个知识不断更新的世界里,我们咋不断刷新自己的知识结构,只有一点最重要,就是尽量酝酿一种大胸怀。大境界才能有大胸怀,大格局才有作为。继承的概念:继承是面向对象程序设计的一个重要特征,它实现了代码的重用。在JAVA中,通过继承可以在现有类的基础上创建新的类,新类继承原类的属性和方法。在新类中,可以重新定义继承的方法,也可以添加属性和方法来扩展新类的概念。Object类是JAVA中所有类的根类,使用Object对象可
3、以创建具有通用性的程序。面向对象最重要的特点之一,就是可以实现对类的复用。可以通过两种方法实现:1. 一种方法是将一个类当做另外一个类的属性(称为合成/聚合关系)2. 另外一种方法是一个类继承另外一个类。实现继承的类称为子类(或派生类),而被继承的类称为父类,也叫超类或基类通过“继承”一个现有的类,可以使用已经定义的类中的方法和变量(权限允许的前提下)。(public/private/protected)类的方法和属性可以被继承,但是类的构造器不能被继承Java类只支持单继承,不允许多继承一个子类只能有一个父类一个父类可以派生出多个子类Object类:Object类是所有java类的根父类(最
4、高父类)任何一个java的类(class)都直接或者间接继承自Object类如果在类的声明中未使用extends关键字指明其父类,则默认父类为Object类Super关键字:应用场景:当想要调用父类中的同名属性/方法/构造方法时,用super关键字来区分在java类中使用super来引用父类的成分super.可用于访问父类中定义的属性Demosuper.可用于访问父类中定义的成员方法Demosuper(.)可用于在子类构造器中调用父类的构造器Demo使用super注意事项:Super只能应用在成员方法和构造方法中,不能应用在静态方法中(和this是一样的),如果在构造方法中使用super(.)
5、必须放在第一行。this()调用重载的构造方法super()调用父类的构造函数继承中的构造方法:子类在构造函数的过程中必须(显示或隐式地)调用其基类的构造方法,直到Object子类可以在自己的构造方法中使用super调用基类的构造方法如果子类的构造方法没有显式的调用基类的构造方法,则系统默认调用基类无参数的构造方法 : super()如果子类构造方法中既没有显示调用基类的构造方法,而基类中又没有无参的构造方法(基类没有无参的构造方法是因为程序员已经重新写了基类的构造方法,系统不会再默认调用基类的无参构造方法了),则编译出错按照顺序进行:父类static,子类static,父类,父类构造方法,子
6、类子类的构造方法访问修饰符:(普通)类的访问修饰符public:任何包中的类都可以访问该类默认值:同一个包中的类可以访问该类成员的访问修饰符private:只对本身类可见默认值:对同一包中的类可见protected:对所有子类和同包中的类可见public:对一切类可见局部变量、方法形参 :不能用权限修饰符(protected/public/private)注意:访问成员的前提是首先能访问成员所属的类访问控制:访问控制的限制程度从高到低为:privatedefaultprotectedpublic注:default不是一个修饰符,它只是用来表示一种不加任何修饰符时的状态父类中的私有方法可以被父类
7、中的方法调用,子类可以间接调用父类中的私有方法,但一般不这样做。方法的重写:在子类中可以根据需要对父类中继承来的方法进行改造方法的重写(Override)重写方法必须和被重写方法具有相同的方法名称(大小写敏感)、形式参数列表和返回值类型重写方法不能使用比被重写方法更加严格的访问权限父类的静态方法(static)不能被子类覆盖为非静态方法,反之亦然。,取其精华大原则:子类的功能应该比父类强大 .关于多态:静态多态也叫编译时多态,通过方法重载实现动态多态也叫运行时多态,通过对象的多态性实现面向对象的三大特征:封装、继承、多态多态在java中,子类的对象可以代替父类的对象使用一个引用类型变量可能指向
8、(引用)多种不同类型的对象Person p=new Student();Object m=new Person();m=new Student();一个引用类型变量如果声明为父类的类型,但实际引用的子类对象,那么该变量就不能再访问子类中新增加的属性和方法。多态的第一种主要形式:父类的引用指向了子类的对象.Student m=new Student();m.school=“pku”/合法Person e=new Student();e.school=“pku”;/非法虚方法调用:(virtual Method Invocation)正常的方法调用Person e=new Person();e.g
9、etInfo();Student e=new Student();e.getInfo();虚方法调用(多态情况下)Person e=new Student();e.getInfo();/调用了在Student类中重写的getInfo方法方法声明的参数类型为父类类型,可以使用子类的对象作为实参调用该方法Java大原则之三最佳匹配性原则println(String);println(Object);Instanceof操作符:instanceof左边的引用指向的对象的实际类型 是不是 右边的类型(或其子类类型)对象造型(Casting):对java对象的类型转换称为造型在造型前通常使用instan
10、ceof操作符测试一个对象的类型从子类到父类的类型转换可以自动进行从父类到子类的类型转换必须通过造型(强制类型转换)实现子类的对象可以当做基类的对象来使用称向上转型,反之称为向下转型无继承关系的引用类型间的转换是非法的多态的第三种主要形式:声明的返回值类型为父类类型,实际返回的是子类对象的地址例如Collection接口中有一个iterator()方法,声明的返回值类型是一个遍历器接口类型iterator的对象java.util.Calendar抽象类中定义的public static Calendar getInstance() ;返回的实际是Calendar的子类GregorianCale
11、ndar的对象(地址)toString()方法:1. Object类中定义有public String toString()方法,其返值是String类型,描述当前对象的有关信息。默认情况是打印的是:类名hashcode的十六进制表示2. 在进行String与其他数据的连接操作时(如:System.out.println(“info”+person)),将自动调用该对象类的toString()方法。3. 可以根据需要在用户自定义类型中重写toString()方法。Object类的方法:int hashCode()方法,返回该对象的哈希码值。Class getClass()方法,返回此Objec
12、t的运行时类Integer类:StringtoString() 返回一个表示该 Integer 值的 String 对象。static StringtoString(inti) 返回一个表示指定整数的 String 对象。static StringtoString(inti, intradix) 用第二个参数指定的基数返回第一个参数的字符串表示形式。Objet类的方法:int hashCode()方法返回该对象的哈希值Class getClass()方法返回此Object的运行时类=操作符:相同的字符串常量相等两个Integer,如果其中至少一个是new出来的,则不相等;如果都是同一个常量赋值
13、的,则相等。基本数据类型和封装类会拆箱比较数值两个不同封装的对象不能比较,编译报错两个不同的基本数据类型,如果可以自动转换,则可以比较。有继承关系的引用数据类型对象之间可以比较,当指向同一个对象的时候相等。没有继承关系的引用数据类型不能比较equals方法:在Object类中定义的equals方法:public boolean equal(Object obj)注意:形参是Object类型。调用equals()方法时的实参可以是基本数据类型,java会自动进行装箱。=操作符与equals方法:1. 在比较引用数据类型时,=操作符与equals()作用完全一样看引用的是不是同一对象2. 除非在自
14、定义的类中重写了equals方法,或是下面的四类已经重写了equals方法的特例:java.io.File;java.lang.String;Java.util.Date;封装类注:比较字符串时,尽量不要用=操作符,而用equals()方法这四类当用equals()方法进行比较时,只比较类型及内容而不看引用的是不是同一对象。关键字final:在java中声明类、属性和方法时,可以使用final修饰符来修饰。final标记的类不能被继承final标记的方法不能被子类重写final标记的变量(成员变量或局部变量)即成为常量,只能赋值一次,且在使用前必须被赋值。final标记的方法的形参不能被重新赋
15、值final标记的成员变量必须在声明的同时或在每个构造方法(或构造语句块)中显示赋值,然后才能使用构造方法不能使用final来修饰,因为构造方法不能被继承,更无所谓重写,用final修饰没有意义,编译会报错。final类里面可以定义final方法抽象类:应用场景:在定义一个类时,有些方法暂时还不知道该怎么实现,只能等子类把这些方法都实现后才能使用。这样的方法应该定义为抽象abstrct方法含有抽象方法的类必须定义为抽象abstrct类用abstract来修饰类或方法abstract class AbstrctClass.abstrct returnType abstrctMethod(para
16、mlist);抽象类不能被实例化,抽象方法必须被全部重写后,才能生成它的子类对象。如果一个子类没有实现抽象类中所有的抽象方法,则子类也要声明为一个抽象类。抽象类不一定包含抽象方法不想让人直接实例化可以声明抽象类类型的引用,把它作为方法形参,返回值类型等。java.awt.event.MouseAdapterpublic abstract class MouseAdapter implements MouseListener, MouseWheelListener, MouseMotionListener .public void mouseClicked(MouseEvent e) publi
17、c void mousePressed(MouseEvent e) public void mouseReleased(MouseEvent e) public void mouseEntered(MouseEvent e) public void mouseExited(MouseEvent e) .抽象方法和抽象类:在类中没有实现的方法就是抽象方法,抽象方法没有方法体( 不同于方法体为 )接口:接口(interface)是抽象方法和常量值的而一个数据结构。从本质上讲,接口是一种特殊的抽象类,这种抽象类中只包含常量和方法的定义,而没有方法的实现jdk8之前jdk8之后,接口中可以定义defa
18、ult方法(一种实例方法),static方法.public interface Runner/没有方法体int id=1;void start();public void run();abstract void stop();public class Person implements Runner/必须把接口中的方法全部进行实现public void strat()/弯腰、蹬腿、瞪眼、开跑public void run()/摆动手臂、维持直线方向public void stop()/减速直至停止、瘫倒、吐血、送医院多个类可以实现同一个接口一个类可以实现多个接口与继承关系类似,接口与实现类之间
19、存在多态性接口特性:接口可以多重实现接口中声明的属性默认为: public static final 的也必须是:public static final的可以写public 的或者不写,不能写private的或者protected的接口中只能定义抽象方法,而且这些方法默认为:public abstract的、也必须是 public abstract 的。可以缺省,但不能用其它修饰符;接口可以继承若干个其它的接口,并添加新的属性和抽象方法接口里可以没有任何属性,方法。用实现接口的方式,你可以用接口中的方法指定一个类(其实现类)“必须做什么”而不是规定它“如何去做”接口和抽象类:子类继承抽象类就不
20、能再继承其他类(java的单继承原则),所以有抽象方法时优先使用接口定义。如果所有方法都没有实现,优先使用接口。一些方法已经可以实现,而另一些方法无法或不想实现时,且继承(实现)关系很简单时,考虑用抽象类定义,留给后代去实现。jdk8之后,也可以在接口中定义default方法或static方法来实现。内部类:一个类可以定义在类的内部,这样的类称为内部类,而包含它的类称为外部类(宿主类Host)应用场景:处理宿主类的内部事务,一般跟其他类关系不大,能够减少java的源代码数量。安卓阶段将大量使用匿名内部类内部类与外部类之间存在逻辑的所属关系内部类可以(直接或间接)访问外部类所有属性当内部类声明成
21、public或private等时,在宿主类之外对其访问的限制与对成员变量和成员方法完全相同inner class 一般用在定义它的类或语句之内,在外部引用它时必须给出完整的名称。inner class的名字不能与宿主类的类名相同成员内部类:成员内部类也叫实例内部类,即没有用static修饰的内部类在文件管理方面,成员内部类在编译完成之后也会产生.class文件,而文件名称则是“外部类名称$内部类名称.class”非静态Inner class可以使用宿主类的静态和实例变量在宿主类的main方法中,如果没有创建宿主类的对象,直接创建成员内部类的对象,则编译报错:No enclosing(正在封闭的
22、) instance of type 宿主类名 is accessible(可访问). Must qualify使.有资格 the allocation分配 with an enclosing instance of type 宿主类名 (e.g. x.new A() where x is an instance of 宿主类名 ).实例化成员内部类:在宿主类之外,例如:Client.java中实例化成员内部类的格式:Outer outer=new Outer();/创建宿主类的对象Outer.Inner inner=outer.new Inner();/尝试设定Inner不同的权限,看能否成功编译在宿主类
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026上海华东师范大学开放教育学院教师发展学院校内外招聘1人备考题库及答案详解(有一套)
- 2026湖北宜昌市中医医院卫生专业技术人员招聘20人备考题库参考答案详解
- 2026浙江温州市老干部活动中心招聘编外人员1人备考题库含答案详解(综合卷)
- 2206吉林大学白求恩第一医院心理卫生科技术员招聘1人备考题库含答案详解(能力提升)
- 2026上海对外经贸大学科研处行政管理人员招聘1人备考题库附答案详解(b卷)
- 2026湖南怀化市溆浦县土地与房屋征收安置办公室公益性岗位招聘1人备考题库附答案详解(典型题)
- 2026浙江温州市瓯海区招聘专职社区工作者6人备考题库(含答案详解)
- 2026江西国泰五洲爆破工程有限公司中层管理岗位招聘2人备考题库及答案详解(夺冠系列)
- 2026吉林省职工服务有限责任公司(拟成立) 招聘10人备考题库及答案详解(考点梳理)
- 2026黑龙江哈尔滨工业大学电气工程及自动化学院电力电子与电力传动研究所招聘备考题库及答案详解(夺冠系列)
- 提高肿瘤治疗前TNM分期评估率
- 2025年四川省绵阳市中考英语真题
- 荨麻疹的定义、分类、诊断及管理国际指南(2026)解读课件
- 2026中证数据校园招聘备考题库(含答案详解)
- DB61∕T 5132-2025 西安城市轨道交通工程监测技术标准
- 《老年临床营养管理服务规范》编制说明
- 高速公路机电工程监理实施细则
- 2026年及未来5年市场数据中国双乙烯酮行业市场深度分析及发展前景预测报告
- 2026年河南农业职业学院单招职业技能测试模拟测试卷附答案
- 2025年轻烃与芳烃产业发展大会:小堆与石化耦合降碳的实践与探索
- 雨课堂学堂在线学堂云《劳动与社会保障法学(辽宁大学 )》单元测试考核答案
评论
0/150
提交评论