收藏 分享(赏)

javaoop笔记整理.doc

上传人:天天快乐 文档编号:575506 上传时间:2018-04-12 格式:DOC 页数:11 大小:64.50KB
下载 相关 举报
javaoop笔记整理.doc_第1页
第1页 / 共11页
javaoop笔记整理.doc_第2页
第2页 / 共11页
javaoop笔记整理.doc_第3页
第3页 / 共11页
javaoop笔记整理.doc_第4页
第4页 / 共11页
javaoop笔记整理.doc_第5页
第5页 / 共11页
点击查看更多>>
资源描述

1、一、封装1.构造方法是在什么时候被调用?能不能手动调用?:在 new 对象的时候被系统自动调用,不能手动调用2.为什么需要要封装?:保护数据的有效性和安全性3.什么是封装?:(1)对象的属性和方法不可分割。(2)是保护数据的一种机制。3.属性怎么样封装?:第一步:把所有的属性定义成私有。第二步:提供公有的 get/set 方法,间接操作属性。set 属性():设置属性值get 属性():得到属性值=补充:封装一、属性怎么样封装?第一步:把所有的属性定义成私有:private第二步:提供公有的 get/set 方法,间接操作属性。set 属性():设置属性值get 属性():得到属性值二、方法怎

2、么样封装?第一步:把需要保护的方法定义成私有的:private第二步:提供公有的方法间接的调用私有的方法。第一部分:static :静态的 一、static 的用法:用在属性前面和方法前面1.用在属性前面:加了 static 的属性-静态属性没有加 static 的属性-非静态属性注意:静态属性与非静态属性的区别?静态属性 :属类(所有的对象) 所有,与对象没有关系,可以用类名直接调用,在内存只开一个空间,静态的属性是在 new 对象之前就已经在内存!非静态属性:属对象所有,必须 new 出对象才能使用,每一个对象都要有自己的属性空间与对象有关,在内存中有几个对象就有几个空间!2.用在方法前面

3、:静态方法:属类(所有的对象 )所有,与对象没有关系,可以用类名直接调用,在 new 对象之间就被加载进内存了。非静态方法:属对象所有,与对象有关,不可以用类名来调用。(1)非静态方法:非静态的方法能调用静态的方法(2)非静态的方法可以调用静态的属性也可以调用非静态的属性静态方法:静态的方法不能调用非静态的方法(3)因为静态方法在 new 对象之前就已经在内存中(4)而非静态的方法要 new 出对象才会在内存中(5)静态方法可以调用静态属性不可以调用非静态属性总结:静态的不能调用非静态!3、static 关键字的实际应用? 单列模式-一个类只能 new 一个对象饿汉式:public class

4、 Studentprivate static Student stu = new Student();private Student()public static Student getStudent()return stu;懒汉式:public class Studentprivate static Student stu = null;private Student()public static Student getStudent()if(stu=null)stu = new Student();return stu;关键字:static 静态的用法:用在属性和方法的前面(1)用在属性前

5、面:静态的属性静态属性和非静态属性的区别:public class A()int i; /非静态的static int j; /静态的public A()i+;j+;System.out.print(“i=“+i);System.out.print(“j=“+j);测试类中:A a = new A(); /i = 1 j=1A b=new A(); /i=1 j=2=第二部分:继承 (封装 继承 多态)一、为什么需要继承?写类的时候,会有重复的代码:代码冗余为了解决代码冗余的问题所有有了 java 的继承机制!二、什么是继承?继承:就是继承者拥有被继承的某些特征!有点像儿子继承老子!继承是与类

6、之间的关系! 群体与群体的关系类与类之间继承的条件:“is-a“的关系 :一个类的对象也是另外一个类的对象!猪类 人类 不满足 is-a 的关系 没有继承关系猪类 母猪类 满足 is-a 的关系 :母猪类的一头母猪 是猪类的一头猪 继承的类 -子类被继承的类-父类(人与人之间的继承需要血缘关系)三、怎么使用继承?第一步:找到这些类的共同的父类,然后把各个类的相同代码放到父类中。第二步:各个类去继承父类:在的类名 extends 父类 (把重复的代码去掉)第三步:定义子类的子类的对象,可以得到自己没有但是父类的有的属性和方法子类没有的属性就找父类要!四、继承的价值:(1)提高代码的重用性(2)提

7、高代码的可扩展性(3)将类分类父类 比较抽象 子类比较具体人类 老师类 工人类 学生类=第二部分:数据类型转换 引用类型 和基本类型一、基本类型的转换:1.自动转换: 类型相似 小的转大的 int a = 10;double b = a;String str = “10“;int n = str;错误的 类型不相似2.强制转换: 类型相似 大转小double a =9.9;int b =(int)a; 9二引用类型:1.自动转换:继承关系 儿子(小) 转父亲(大)Human hu ;Teacher te = new Teacher();hu = te; 对的Worker work1 = new

8、 Teacher(); 错误 这两类没有继承关系2.强制转换:继承关系 父亲(大) 转 儿子(小)(double a = 9.9; int b = (int)a;)Teacher tea = (Teacher)new Human();3.一个父类的引用(变量)可以指向对个儿子。父亲能代表多个儿子!怎么样判断父类的引用中的真实对象是谁? instanceofHuman hu =new Teacher();boolean bl = (hu instanceof Worker); 如果 hu 中的真实对象是 Worker 类的对象 返回 true 否者返回 falseSystem.out.print

9、ln(bl);boolean b2 = (hu instanceof Teacher);如果 hu 中的真实对象是 Teacherr 类的对象 返回 true 否者返回 falseSystem.out.println(b2);继承的原理:1、java 中的继承不是真正的继承:(1)在构造子类对象的时候,会先构造父类对象,再构造子类对象原因:子类的构造方法的第一句:系统会自动添加super(); 这句代码写不写都存在,这句代码作用:就是用来调用父类的无参数的构造方法但是:如果我们自己写了 super();系统不会添加这句代码注意:super(); 这句代码只能在构造方法的第一句!自己写的时候,s

10、uper(参数),来调用父类有参数的构造方法。this(); 作用调用当前类的构造方法注意:这句代码只能在构造方法的第一句!(2)子类继承父类,自己有的属性就不找父类要!2、所有类的祖先是:Object 类3、父类的什么东东不能被子类继承?(1)私有的属性和方法不能被子类继承(2)父类的构造方法不能被子类继承4、java 的继承是单继承!一个子类只能有一个父类 5、当父类只有一个带参数的构造方法的时候,子类怎么样去继承?必须要手动的通过 Super(参数) 来调用父类的构造方法!总结:父类引用指向子类对象:只能调用父类的属性和方法,不能调用子类的属性和方法! 子类的属性和方法被隐藏了第二部分:

11、多态一、什么是多态?变态现实生活中的多态:(水)同一个事物(水),在不同的条件下(温度:0 100 100 ) 表现出不同的形态。java 中的多态:行为(方法)同一种行为(方法),由于不同的条件(参数或者执行者不同),得到不同的结果,表现出不同的形态!二、多态的分类:一类:方法重载的多态 :同一种行为(方法相同 ),由于参数不同,得到不同的结果!做菜(肉) 红烧肉做菜(豆腐 ) 麻婆豆腐通俗的说:给什么就做出什么二类:方法重写的多态:同一种行为(方法相同 ),由于执行者不同,得到不同的结果!你 做菜(肉) 烧糊的肉新东方的厨师 做菜(肉) 红烧肉三、为什么需要方法重写的多态由于子类的特殊性,

12、父类不能完全体现出来,所以需要方法的重写!四、怎么样进行方法的重写?三相同一放大:三相同:方法名相同 参数相同 返回值相同一放大:子类重写父类的方法,作用域不能比父类的小publicprotected缺省private(方法重载的写法:方法名相同,参数不同,与返回值无关)五、方法重写的条件(1)继承(2)有方法的重写(3)父类引用指向子类对象第一部分:多态一、方法重写多态的条件?(1)继承(2)重写父类方法(3)父类引用指向子类对象二、方法重写与方法重载的区别?(1)方法重写:执行者不同 方法重载:参数不同(2)方法重写;只能在子类中, 方法重载:既可以在子类中也可以在父类中(3)方法重写多态

13、是动态的多态 方法重载:静态的多态动态的多态不确定会调用哪个子类的方法!静态的多态代码一些出来就知道是调用哪个子类的方法!三、方法重写多态的应用:(1)父类引用指向子类对象:*父类引用指向子类对象:* 父类引用时调不到子类的属性和方法的* 但是被子类重写的方法,能调用到,* 覆盖父类的方法(2)父类引用当参数:一个父类引用可以指向多个子类对象。(父亲能代表多个儿子)总结:参数能用父亲就不用儿子!(3)父类引用数组:(4) 父类引用当返回值:总结:1、父类引用指向子类对象,不能调用子类特有的方法,但是能调用重写父类的方法,覆盖父类的方法!四、方法重写的价值?(1)提高代码的可扩展性!=第二部分:

14、抽象类 abstract :意思就是抽象的1、一个类的方法不好怎么样去写方法体的时候,我们可以不写方法体,这个方法就要定义成抽象方法。public abstract 返回值类型 方法名();2、包含抽象方法的类一定要定义抽象类。(是抽象类不一定包含抽象方法 )3、抽象类中可以有构造方法,普通方法,抽象方法。4、抽象类不能实例化(不能 new 对象)!,但是可以定义引用!5、一个继承抽象类,一定要重写父类的所有的抽象方法,只要有一个没有被重写,这个类就要定义成抽象类!=第三部分:接口一、为什么需要接口?/定义一个电脑类public class Door public void open()Sys

15、tem.out.println(“门开了“);public void close()System.out.println(“门关了“);/定义一个电脑类public class Com public void open()System.out.println(“电脑开了“);public void close()System.out.println(“电脑关了“);/定义一个人类,写一个测试电脑和门开关的方法public Humanpublic void test(Com com)com.close()com.open();/方法的重载public void test(Door door)do

16、or.close()door.open();(1)这两个类有很多重复的代码,又找不到共同父类。(2)没办法用多态:父类引用当参数所以有了接口.Worker 类 Teacher 类 -有相同的代码:继承-能找到共同的父类:人类Door 类 Com 类-有相同的代码:继承- 不能找到共同的父类(亲爸)实现 -找接口(后爸)二、什么是接口?Interface接口是一组功能的约定。有点像父类,但不是父类父类:亲爸接口:后爸三、怎么样使用接口?第一步:定义一个接口,把各个类的相同方法变成抽象方法,放到接口中第二步:各个类去实现(implements),这个接口第三步:就可以用接口的引用指向不同的子类。-

17、多态复习一、抽象类:1、有些方法不太好些方法体,那么我们可以不写方法,但是要把这个方法定义抽象方法。public abstract void eat(); 抽象方法public void eat(); 普通方法2、包含抽象方法的类必须定义成抽象类!是抽象类不一定包含抽象方法。3、抽象方法可以有构造方法,普通方法。4、抽象类不能实例化。5、一个类去继承一个抽象类,必须重写抽象类中所有的抽象方法只要有一个没有被重写,那么这个类必须定义成抽象类。=final 关键字:最终的 不变的用法:可以用在变量,方法,类,属性前面1.用在变量前面:常量-常量的值是不能改变的变量- 宾馆里的房间常量- 自己的狗窝

18、 加了 final 的变量常量int a ; -final int a ;2、用在属性前面:定义的同时就必须赋值,值不能改变(定义的时候不赋值,也可以在构造方法中赋值)3、用在方法前面:这个方法不能被子类重写,可以重载4、用在类的前面:这个类被阉割,不能被其他类来继承。=接口: interface-有点像父类 但是没有 is-a 的关系一、接口的特征1、接口中的方法默认就是 public abstract ,不能修改定义方法的时候,这两个单词可以不写,写不写都存在2、接口中的属性默认是常量。值不能改变,必须初始化。3、接口中不能有构造方法和普通方法4、接口不能实例化5、接口是多继承!(类是单继

19、承 )public interface 通讯 void 通讯();public interface 充电 void 充电();public interface 移动通讯 extends 通讯 ,充电6.一个类可以实现多个接口:多实现public class 手机 implements 通讯, 充电二、接口与抽象类之间的区别: 思考相同点:不同点:=一、异常:不正常现实生活中的异常:在事情进行的过程,出现了不可预料的事件,这个就是一个异常。我开车去上班- 车爆胎了(异常)-到了就上班现实生活异常要处理因为生活很美好,人要继续活下去java 中异常:软件在运行的过程中,出现了突发的事件,导致程序中

20、止。这样的异常我们处理程序还要继续运行!二、怎么样处理 java 中的异常try/可能产生异常的代码/原理:一旦有代码产生异常,java 虚拟机自动捕获这个异常/把异常的信息传递给对象 e,e.包含了异常的信息catch(Exception e)/异常处理的代码 e:三、怎么样显示异常的信息?(1)System.out.println(e.getMessage();/打印错误的一原因(2)System.out.println(e.toString();/打印异常的原因 异常所属的类(3)e.printStackTrace();/打印异常的原因 异常所属的类 所在的行 和堆栈信息总结:一般用第 3 个方法,这个方法信息最全四、常见的异常类爆胎- 是指汽车的轮胎坏了InputMismatchException-输入的值不匹配(1) 输入不匹配异常java.util.InputMismatchException(2)算术异常

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 经济财会 > 贸易

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报