




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
学习资料收集于网络,仅供参考类和对象1.1类:类是用来描述一类事物的共性内容的 ,类是抽象的;创建类,如何描述属性 功能用变量来描述属性用方法来描述功能1.2对象:就是现实中具体的事物,对象是具体的;创建对象类名 对象名 = new类名();如何通过对象访问类中属性和方法呢 ?对象名.变量名对象名.方法名();只要是new的对象,就是新创建的,就会在内存中开辟一段单独的空间1.2匿名对象创建的对象没有赋值给具体的变量 ;学习资料学习资料收集于网络,仅供参考所以给匿名对象的属性赋值是没有任何意义的 ;匿名对象使用场景调用方法作为参数传递添加进容器中1.3 This 关键字This.类中的普通方法访问到的成员前边都有 this.这个关键字This. 就代表当前对象,普通方法,创建对象调方法, 谁调用就代表谁This();可以用来在构造函数中调用本类与之相对应的构造函数使用注意事项:1this()只能是构造函数的第一条执行语句2this() 不能在构造函数之间相互调用3this() 不能调用自己1.4构造函数(方法)构造函数的作用用来给对象进行初始话的 (初始化就是指给对象的各个属性赋值 )学习资料学习资料收集于网络,仅供参考构造函数何时执行对象一创建就会调用与之相对应的构造函数构造函数语法修饰符 没有返回值类型 类名(参数列表){具体执行的代码}构造函数自动添加当一个类中我们没有明确指定构造函数的话,jvm会自动帮我们添加一个空参数的构造,如果我们指定了,就不添加了构造函数和普通函数的区别5.1执行时机不同对象一创建就会调用与之相对应的构造函数普通函数只有被调用才会执行1.5return1就是用来在方法中返回具体结果 (结果类型必须和方法的返回值类型一致 )2即便方法的返回值类型是 void,方法中也可以出现 return;3构造函数中也可以有 return关键字学习资料学习资料收集于网络,仅供参考1.6成员变量 和局部变量1作用范围不同,成员变量是定义在类中的 ,在整个类中都起作用局部变量是定义在方法中的 ,在所在代码块起作用2初始值不同,成员变量有默认初始值,不用赋值,也能直接时候局部变量,没有初始值,必须得赋值以后才能使用封装2.1staticStatic是用来修饰类中成员 成员变量 成员方法被static修饰的成员,就多了一种调用方式,可以被类名直接调用了修饰成员变量该变量在内存中只会保存一份,被类和所有对象共享,那么一个对象对其进行修改,会影响到其他对象,为了不影响其他对象,经常会把静态变量搞成常量,被final修饰;修饰成员方法静态方法中只能访问静态成员普通方法中都能访问;静态方法中不能出现 this,super关键字Main函数是静态的;学习资料学习资料收集于网络,仅供参考那么我们定义方法时,什么时候定义静态,什么时候定义非静态?当方法中使用到了普通(非静态)成员的话,就不能定义成静态的;代码块 (静态代码块)用来给类进行初始话 (给类中的静态成员进行初始化 )会随着类的加载而执行(只会执行一次)2.2封装就是隐藏类中的某些成员 ;仅对外提供公共的访问方式封装三步走:私有属性提供set和get方法供外界给对象设置值和获取值在方法中添加具体的存取限制2.3包和权限修饰符类权限修饰符可以用来修饰两种东西 :Public 该类在其他包中也可以访问 (首先要导包 import)默认类中成员Public protected 默认 private学习资料学习资料收集于网络,仅供参考本类中是否能访问本包其他类其他包Public能能能默认能能不能Private能不能不能包创建包声明包导入包包的作用便于管理防止命名冲突;包也是封装的一种方式,可以在更广的范围保护类继承某个类 可以通过 extends继承其他的类一个类继承了另外一个类以后 ,就继承了所有的非私有的属性和方法注意事项java中只允许单继承;不允许多继承,但是允许多层继承何时继承?AisB;学习资料学习资料收集于网络,仅供参考继承发生以后类中成员的特点成员变量当子类和父类的成员变量同名是,子类中优先使用子类自己的.可以通过super.调用父类的成员变量和成员方法;成员方法子父类具有相同的功能,但是子类有自己具体的实现,这个时候子类是没有必要重新定义一个方法的,只需要重写父类就行了;重写(覆盖)1前提, 存在继承 和实现关系2方法名一样,参数列表一样,返回值类型一样(jdk5以后要求子类的返回值类型是父类返回值类型的子类也行)子类方法的权限不能小于父类子类方法不能抛出比父类更多的异常重载同一个类中,方法名一样,参数列表不一样(参数数量,参数类型),与返回值类型无关构造函数1构造函数是不能继承的;2但是子类可以在构造函数中通过 super()调用父类与之相对应的构造3如果子类构造函数首行没有明确指定this(),super(“”);这样的语句的话,其实是有一天隐式语句super(),调用父类空参数构造,如果父类没有空参数构造的话,子类是会报错的;学习资料学习资料收集于网络,仅供参考4如果子类首行有this()这样的语句的话,就没有隐式语句 super();5不论子类的第一行有没有this(),super();创建子类对象的时候一定会调用到父类的某个构造;4与上帝相关 Object任何类java中自带的类,或者是我们自定义的类,都直接或间接的继承自Object;2如果某个类没有明确指定 父类的话,那么这个类就默认继承自 Object;所有Object中定义的方法所有java对象都可以调用4比如toString() equals(Objectobject)5直接打印对象的话.我们发现出现的是对象的内存地址值,因为打印对象就是打印的对象的toString()方法的返回值.而Object身上定义的toString方法返回的就是对象的内存地址值,这个时候这需要我们重写toString方法以后,调用的就是子类自己的toString方法了抽象类1发现该类事物都具备该功能 ,但是不确定如何实现,就可以定义成抽象方法2抽象方法特点 没有方法体,被abstract修饰3如果一个类中有抽象方法 ,这个类也必须得是抽象类4如果一个类继承了抽象类以后,这个类要么是抽象的,要么必须实现抽象类中的所有抽象方法5抽象类和普通类的不同;抽象类不能被实例化对象 ;学习资料学习资料收集于网络,仅供参考为什么不能实例化对象因为创建对象以后就可以通过对象调用抽象类中没有方法体的抽象方法了,这样是没有意义的,为了不让调用,干脆就不让创建对象了;7抽象类有没有构造函数?抽象类天生就是被继承的 ,然后创建子类对象的时候一定会调用到父类构造8抽象类中可以没有抽象方法 ;6Final1常量不能重新赋值2类该类不能被继承不能派生子类3方法该方法不能被重写(覆盖)7Abstract 修饰方法 和三个关键字冲突finalstaticprivate8super 关键字1 super.指代父类对象的引用 可以通过super.调用父类的属性和方法2可以通过super()在构造函数中调用父类与之相对应的构造函数学习资料学习资料收集于网络,仅供参考多态4.1多态的体现Animalanimal=newPig();父类的引用指向了子类对象左边声明的是父类,右边创建的是子类;4.2多态的前提存在继承或 实现关系4.3多态的好处简化了代码;大大提高了程序扩张性;4.4多态的弊端只能调用父类共有的方法 ,不能调用子类特有的方法4.5多态的应用Animalanimal=newPig();能不能调用看左边, 具体调用谁的看右边;非要调用子类特有的方法需要强转 , 向下转型:强制把父类的应用转成子类对象 ;学习资料学习资料收集于网络,仅供参考向下转型容易出问题, 为了防止类型映射异常,最好在强转以前进行类型判断 ;Instanceof4.6多态的应用场景定义方法的时候,形式参数的类型声明为父类,这样调用方法的时候就可以传递该父类的任意子类对象进来了; 以父类作为方法的返回值类型 ,接口如何定义一个接口,interface初期理解,接口就是里边都是抽象方法的抽象类接口中成员接口中只能有两种成员3.1抽象方法3.2静态常量4接口中的成员都有固定的修饰符 ,可以省略抽象方法的 publicabstract静态常量的 publicfinalstatic接口和抽象类都不能实例化对象接口是没有构造函数的,接口支持多实现implementsA,B,C,D学习资料学习资料收集于网络,仅供参考8一个类在继承了一个类的同 时还可以实现多个接口9接口和接口之间也有关系 ,是继承关系接口和接口之间支持多继承何时使用接口2.1 接口是额外的功能2.2 接口预先定义好的规则异常程序运行中的不正常事件 ,会导致程序终止运行,1tryTry{可能出现异常的代码}2catchCatch(要捕获的异常对象){捕获住异常执行的代码;e.printStackTrace();}学习资料学习资料收集于网络,仅供参考3finallyFinally{不论是否发生异常;不论发生异常之后能不能捕获住异常 ,都会执行的代码即便trycatch中有return语句,也是先执行完finally中的代码,再return;Finally不执行的唯一情况是 trycatch中碰到System.exit(1);’}4多重catch 语句块;Try中代码发生异常以后,会从上往下依次匹配catch代码块,匹配上某一个的话就不继续往下匹配了;我们经常会在多个catch的最后catch一个最大的Exception,起一个兜底的操作,就是即便发生了我们没有预料到的异常,程序也不会终止掉,并且最大的异常应该放在最后一个catch块;5 throws throwThrows用来在方法上抛出多个异常类的 ,各个异常类之间用 逗号分隔开Throw用来在方法内部抛出一个异常对象学习资
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 云服务与网络架构关系试题及答案
- 公路工程未来发展趋势试题及答案
- 计算机四级备考软件测试试题及答案
- 嵌入式开发中的质量控制试题及答案
- 探索公路工程可持续发展考点试题及答案
- 兽药人员健康管理制度
- 农牧审批事项管理制度
- 小区跑步保安管理制度
- 学校杂物电梯管理制度
- 室内装修现场管理制度
- 山东省烟草专卖局(公司)笔试试题2024
- 2025-2030中国公共安全无线通信系统行业市场现状供需分析及投资评估规划分析研究报告
- 应急救援安全应知应会题库
- 2024-2025学年七年级下学期英语人教版(2024)期末达标测试卷A卷(含解析)
- 2025年河南省郑州市中原区中考数学第三次联考试卷
- 2024年广东高校毕业生“三支一扶”计划招募笔试真题
- 5年级语文下册看拼音写词语汉字生字扩词日积月累专项练习电子版
- 《法律文书情境训练》课件-第一审民事判决书的写作(上)
- 2025至2030年中国护腰带行业投资前景及策略咨询报告
- 广告宣传服务方案投标文件(技术方案)
- 2025年山东省聊城市东昌府区中考二模语文试题(含答案)
评论
0/150
提交评论