java面向对象知识点总结_第1页
java面向对象知识点总结_第2页
java面向对象知识点总结_第3页
免费预览已结束,剩余9页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、1 类和对象1.1 类:类是用来描述一类事物的共性内容的, 类是抽象的 ;创建类 ,如何描述属性功能用变量来描述属性用方法来描述功能1.2 对象 :就是现实中具体的事物 ,对象是具体的 ;创建对象类名对象名=new 类名 ();如何通过对象访问类中属性和方法呢?对象名 .变量名对象名 .方法名 ();只要是 new 的对象 ,就是新创建的 ,就会在内存中开辟一段单独的空间1.2 匿名对象创建的对象没有赋值给具体的变量;所以给匿名对象的属性赋值是没有任何意义的;匿名对象使用场景1 调用方法2 作为参数传递3 添加进容器中1.3This关键字This. 类中的普通方法访问到的成员前边都有this.

2、这个关键字This.就代表当前对象 ,普通方法 , 创建对象调方法 ,谁调用就代表谁This(); 可以用来在构造函数中调用本类与之相对应的构造函数使用注意事项 :1 this() 只能是构造函数的第一条执行语句2 this()不能在构造函数之间相互调用3 this()不能调用自己1.4 构造函数 (方法 )1.4.1 构造函数的作用用来给对象进行初始话的(初始化就是指给对象的各个属性赋值)1.4.2 构造函数何时执行对象一创建就会调用与之相对应的构造函数1.4.3 构造函数语法修饰符没有返回值类型类名 (参数列表 )具体执行的代码1.4.4 构造函数自动添加当一个类中我们没有明确指定构造函数

3、的话,jvm 会自动帮我们添加一个空参数的构造 ,如果我们指定了 ,就不添加了1.5.5 构造函数和普通函数的区别5.1 执行时机不同对象一创建就会调用与之相对应的构造函数普通函数只有被调用才会执行1.5 return1 就是用来在方法中返回具体结果(结果类型必须和方法的返回值类型一致)2 即便方法的返回值类型是void,方法中也可以出现return;3 构造函数中也可以有return 关键字1.6 成员变量和 局部变量1 作用范围不同 , 成员变量是定义在类中的,在整个类中都起作用局部变量是定义在方法中的,在所在代码块起作用2 初始值不同 ,成员变量有默认初始值 ,不用赋值 ,也能直接时候局

4、部变量 ,没有初始值 ,必须得赋值以后才能使用2 封装2.1 staticStatic 是用来修饰类中成员成员变量成员方法被 static 修饰的成员 ,就多了一种调用方式 ,可以被类名直接调用了2.1.1 修饰成员变量该变量在内存中只会保存一份 ,被类和所有对象共享 , 那么一个对象对其进行修改 ,会影响到其他对象 ,为了不影响其他对象 ,经常会把静态变量搞成常量 ,被 final 修饰 ;2.1.2 修饰成员方法静态方法中只能访问静态成员普通方法中都能访问 ;静态方法中不能出现this,super 关键字Main 函数是静态的 ;那么我们定义方法时 ,什么时候定义静态 ,什么时候定义非静态

5、 ?当方法中使用到了普通 (非静态 )成员的话 ,就不能定义成静态的 ;2.1.3 static 代码块(静态代码块 )用来给类进行初始话(给类中的静态成员进行初始化)会随着类的加载而执行 (只会执行一次 )2.2 封装就是隐藏类中的某些成员;仅对外提供公共的访问方式封装三步走 :1 私有属性2 提供 set 和 get 方法供外界给对象设置值和获取值3 在方法中添加具体的存取限制2.3 包和权限修饰符2.3.1 类权限修饰符可以用来修饰两种东西:Public该类在其他包中也可以访问(首先要导包import)默认2.3.2类中成员Publicprotected默认 private本类中是否能访

6、问本包其他类其他包Public能能能默认能能不能Private能不能不能包1 创建包包的作用1 便于管理2 防止命名冲突 ;3 包 也是封装的一种方式 ,可以在更广的范围保护类3 继承某个类可以 通过extends 继承其他的类一个类继承了另外一个类以后,就继承了所有的非私有的属性和方法注意事项1 java 中只允许单继承 ; 不允许多继承 , 但是允许多层继承2 何时继承 ?AisB;继承发生以后类中成员的特点1 成员变量当子类和父类的成员变量同名是 ,子类中优先使用子类自己的 . 可以通过 super.调用父类的成员变量和成员方法 ;2 成员方法子父类具有相同的功能 ,但是子类有自己具体的

7、实现 ,这个时候子类是没有必要重新定义一个方法的 ,只需要重写父类就行了 ;重写 (覆盖 )1 前提 ,存在继承和 实现关系2 方法名一样 ,参数列表一样 ,返回值类型一样 (jdk5 以后要求子类的返回值类型是父类返回值类型的子类也行 )3 子类方法的权限不能小于父类4 子类方法不能抛出比父类更多的异常重载同一个类中 ,方法名一样 ,参数列表不一样 (参数数量 , 参数类型 ),与返回值类型无关3 构造函数1 构造函数是不能继承的 ;2 但是子类可以在构造函数中通过super()调用父类与之相对应的构造3 如果子类构造函数首行没有明确指定 this(), super(“”);这样的语句的话

8、,其实是有一天隐式语句 super(),调用父类空参数构造 ,如果父类没有空参数构造的话 ,子类是会报错的 ;4 如果子类首行有 this() 这样的语句的话 ,就没有隐式语句super();5 不论子类的第一行有没有this(),super(); 创建子类对象的时候一定会调用到父类的某个构造 ;4 与上帝相关Object1 任何类 java 中自带的类 ,或者是我们自定义的类 , 都直接或间接的继承自Object;2 如果某个类没有明确指定父类的话 ,那么这个类就默认继承自Object;3 所有 Object 中定义的方法所有 java 对象都可以调用4 比如 toString()equal

9、s(Object object)5 直接打印对象的话 .我们发现出现的是对象的内存地址值 ,因为打印对象就是打印的对象的 toString()方法的返回值 . 而 Object 身上定义的 toString 方法返回的就是对象的内存地址值 ,这个时候这需要我们重写toString 方法以后 ,调用的就是子类自己的toString 方法了5 抽象类1 发现该类事物都具备该功能,但是不确定如何实现 ,就可以定义成抽象方法2 抽象方法特点没有方法体 , 被 abstract 修饰3 如果一个类中有抽象方法,这个类也必须得是抽象类4 如果一个类继承了抽象类以后 ,这个类要么是抽象的 ,要么必须实现抽象

10、类中的所有抽象方法5 抽象类和普通类的不同 ;抽象类不能被实例化对象;6 为什么不能实例化对象因为创建对象以后就可以通过对象调用抽象类中没有方法体的抽象方法了 ,这样是没有意义的 ,为了不让调用 ,干脆就不让创建对象了 ;7 抽象类有没有构造函数 ?抽象类天生就是被继承的,然后创建子类对象的时候一定会调用到父类构造8 抽象类中可以没有抽象方法;6 Final1常量不能重新赋值2类该类不能被继承不能派生子类3方法该方法不能被重写 (覆盖 )7 Abstract修饰方法和三个关键字冲突1 final2 static3 private8 super关键字1super. 指代父类对象的引用可以通过 s

11、uper.调用父类的属性和方法2 可以通过 super() 在构造函数中调用父类与之相对应的构造函数4 多态4.1 多态的体现Animal animal = new Pig();父类的引用指向了子类对象左边声明的是父类 ,右边创建的是子类 ;4.2 多态的前提存在继承或实现关系4.3 多态的好处简化了代码 ;大大提高了程序扩张性 ;4.4 多态的弊端只能调用父类共有的方法,不能调用子类特有的方法4.5 多态的应用Animal animal = new Pig();能不能调用看左边 ,具体调用谁的看右边 ;非要调用子类特有的方法需要强转,向下转型 :强制把父类的应用转成子类对象;向下转型容易出问

12、题 ,为了防止类型映射异常 ,最好在强转以前进行类型判断;Instanceof4.6 多态的应用场景4.6.1 定义方法的时候 ,形式参数的类型声明为父类 ,这样调用方法的时候就可以传递该父类的任意子类对象进来了 ;4.6.2以父类作为方法的返回值类型,5 接口1 如何定义一个接口 , interface2 初期理解 ,接口就是里边都是抽象方法的抽象类3 接口中成员 接口中只能有两种成员3.1 抽象方法3.2 静态常量4 接口中的成员都有固定的修饰符,可以省略抽象方法的public abstract静态常量的public final static5 接口和抽象类都不能实例化对象6 接口是没有构

13、造函数的 ,7 接口支持多实现 implements A,B,C ,D8 一个类在继承了一个类的同 时还可以实现多个接口9 接口和接口之间也有关系 ,是继承关系10 接口和接口之间支持多继承2 何时使用接口2.1接口是额外的功能2.2接口预先定义好的规则6 异常程序运行中的不正常事件,会导致程序终止运行 ,1 tryTry可能出现异常的代码2 catchCatch(要捕获的异常对象 )捕获住异常执行的代码 ;e.printStackTrace();3 finallyFinally不论是否发生异常 ;不论发生异常之后能不能捕获住异常,都会执行的代码即便 try catch 中有 return 语句 ,也是先执行完 finally 中的代码 ,再 return;Finally 不执行的唯一情况是try catch 中碰到 System.exit(1);4 多重 catch语句块 ;Try 中代码发生异常以后 ,会从上往下依次匹配 catch 代码块 ,匹配上某一个的话就不继续往下匹配了 ;我们经常会在多个 catch 的最后 catch 一个最大的 Exception, 起一个兜底的操作 , 就是即便发生了我们没有预料到的异常 ,程序也不会终止掉 ,并且 最大的异常应该放在最后一个 catch 块;5throwsthrowThrows 用来在方法上抛出多个异常类的,各个异常类

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论