JavaSE复习_3 继承】的更多相关文章

△先默认初始化,在显示初始化,在构造函数初始化 △继承的弊端:代码的耦合性增加了. △子类不能继承父类的构造方法. △子类会拥有父类的私有成员变量,但是必须通过get,set方法访问. △super不是一个对象的引用,不能将super赋给另一个对象变量,它只是一个指示编译器调用超类方法的特殊关键字. △如果子类没有显示的调用超类的构造器,则将自动的调用超类默认的构造器,如果超类没有不带参数的构造器,并且在子类的构造器中也没有显式的调用其他构造器,将会编译报告错误. △顺序: 父类的静态成员赋值和…
/* * 类的继承和super关键字 * * 软件开发的三大目的: * 可拓展性; * 可维护性; * 可重用性; * * 这里单说下可重用性这一项: * 为了代码复用,复用方式有: * 函数的调用复用; * 类的实例化复用,类直接的复用; * 类的继承复用; * 前两个我都有发过,这里就说一下类的继承,以及继承中用的较多的关键字:super; * * * 首先要先了解什么是继承? * 继承,用人认知的角度说的话就好比一个父亲的东西由他的几个儿子来继承,也就是有了父亲的东西,同时也有自己的东西-…
线程其实就是程序执行的一条路径,一个进程中可以包含多条线程,多线程并发执行可以提高程序效率,可以同使完成多项任务 多线程的应用场景 迅雷多线程一起下载 服务器同时处理多个客户请求 多线程原理(单核CPU) 在电脑上运行多个程序时,其实cpu一次只能做一个事,做一段时间后然后换另一个另一个做一段时间,只是cpu的速度太快了,看起来就是同时做很多事,也就是说多线程其实只是表面上的多线程,底层cpu还是一次只能做一个事,但是这有个前提,那就是那个cpu是单核cpu,如果事多核cpu,那么就可以真正的达…
继承与多态 在父子类的继承关系当中,如果成员变量重名,则创建子类对象时,访问有两种方式: 直接通过子类对象访问成员变量:等号左边是谁,就优先用谁,没有则向上找 间接通过成员方法访问成员变量:该方法属于谁,就优先用谁,没有则向上找 从Java 8 开始,接口里允许定义默认方法 格式 public default 返回值类型 方法名称(参数列表){ 方法体 } 备注:接口当中的默认方法,可以解决接口升级的问题 从Java 9 开始,接口中允许定义私有方法 多态的代码中,成员变量和成员方法的访问规则…
之前匆匆忙忙学完了java,后来又接着学习ee,然而,越是想要快一点最后反而会更慢一点.因为匆忙间 我几乎什么都没学会.在后面的学习中实在非常吃力.就把javase 的视频大部分又重新看了一遍.真的收获挺大的.但是我有一个坏毛病,心浮气躁,还是在赶进度.于是好不容易理解的东西又快忘了.se已经复习完.赶快整理一下. 1.方法的重载: 方法的重载是方法名相同,方法的参数列表不同(参数的个数不同或者参数的类型不同,或者两者都不相同).与返回值类型无关. 这里可以想到:类的有参和无参构造方法就用到了重…
Java早期版本只给集合类库提供了很少的一组类,但是随着Java版本的升级,Java集合类库越来越充实.集合类库里面存放的,是各式各样的数据容器,我们基本都学过数据结构这门课,数据结构所讲的就是ADT(抽象数据模型)的部分,数据结构不是针对于某一门语言,它所讲的通常是对各语言都通用的ADT部分,ADT和具体实现是没有关系的.但是根据教材.根据各专业的不同,各专业会选用使用不同编程语言实现的教材.而我们所讲的,就是如何使用Java数据容器,即Java集合(用Java实现的ADT),具体的实现部分,…
今晚看了core Java的泛型部分,万万没有想到,当时看培训班视频入门的一带而过的泛型,有这样多的细节,整理了一下书里面提到的一些自认为的重点,方便以后观阅.由于是复习,一些基础知识跳过. △泛型类型的限定:即<T extends Comparable>类型,T为绑定类型的子类型,而一个类型的变量或者通配符可以有多个限定,例如<T extends Comparable&Serializable> △Java中实现泛型机制是通过类型擦除来保证的,有给定限定用第一个限定的类型…
/* * 接口 * 引用数据类型: * 类,接口,数组; * * 接口是一种引用数据类型,可以看作是一个特殊的类,它存在的目的是为了解决没有多重继承引起的功能弱的问题而设计的,一个类只能有一个父类,但是这个类却可以实现多个接口; * * 接口还可以看作是只有抽象方法的类,即接口的所有方法都必须被实现; * 接口声明的关键字是interface,代替了class;而普通类的继承关键字extends也变成了implements(实现); * 但是其作用和普通类中是一样的,只不过是为了区分而已; *…
/* * 抽象类 * 抽象: * 面向对象的三大核心思想; * 封装: 封装,ppp是封装的一部分 * 继承; * 多态: 父类的引用指向子类的对象 * 引用: 是指一个引用型变量 * 有哪些变量? * 成员变量; * 构造方法的局部变量; * 普通方法的局部变量; * 立马声明立马使用的变量; * 静态变量; * 什么是抽象类? * 就是用abstract关键字修饰的类就叫抽象类; * 什么是抽象方法? * 没有方法体的方法叫抽象方法,连{}都没有;抽象方法必须在修饰符列表中加上abstrac…
/* * Java也学了好久了,抽个时间整理了一下课堂笔记,也有些是我刚开始学会犯的一些错误.在这里浅谈一下JavaSE的基础内容,对我来说也是一种不错的复习方式. * * 那好,对于初学者来说,学习java基础需要准备些什么呢? * 首先,你得安装java和vim(编辑软件,我目前学习所用的); * 其次需要对安装好的软件进行一些配置(如环境变量)和测试,这里就不多说了; * * 如果这些都已经做好,就已经可以进行java的编码操作了: * 首先先创建一个文本文档,将名字改为'*.java'的…
Stream流 全新的Stream概念,用于解决已有集合类库既有的弊端. 传统集合的多步遍历代码 几乎所有的集合(如 Collection 接口或 Map 接口等)都支持直接或间接的遍历操作.而当我们需要对集合中的元 素进行操作的时候,除了必需的添加.删除.获取外,典型的就是集合遍历.例如: List<String> list = new ArrayList<>(); list.add("张无忌"); list.add("周芷若"); lis…
Java概述 什么是Java语言? Java语言是美国Sun公司(Stanford University NetWork),在1995年推出的高级编程语言. 所谓编程语言,是计算机的语言,人们可以使用编程语言对计算机下达命令,让计算机完成人们需要的功能. Java是一种可以撰写跨平台应用程序的面向对象的程序设计语言.Java技术具有卓越的通用性.高效性.平台移植性和安全性,广泛应用于各大领域. 主要特点: 跨平台,一次编译,到处运行 编译型语言,语法严格,扩展性强,面向对象 开源项目多,解决方案…
第二天:复习if语句,扫描器,switch语句,循环语句 1.if语句---流程控制语句 if之前学的语句是顺序结构 1.1 单个if的语法结构 if(条件判断){ 满足条件需要做的事情: } int a=11; if(a>1){ System.out.println("成功"); } 单个if语句的缺点:单个if语句都是相互独立的,每一个单个的if语句他都会进行判断,会消耗cpu的执行时间,降低执行效率. 1.2 if.....else语法结构 if(条件判断){ 满足条件需要…
一.继承与清理 如果某个类需要去清理自身的资源,那么必须用心为其创建回收垃圾的方法,而如果此类有导出的子类,那么必须在导出类中覆盖回收的方法,当覆盖被继承类的回收垃圾的方法的时候,需要注意销毁的顺序应该和初始化的顺序相反.对于字段来说,意味着与声明的顺序相反.应该先对导出类进行清理,然后才是基类.这是因为导出类的清理可能会调用基类的某些方法,所以需要使基类的构件仍起作用而不应过早的销毁他们. 如果需要去销毁被多个成员对象共享的变量的时候,这种情况会变得很复杂.这种情况下,可以使用引用计数法来跟综…
△子父类涉及的异常问题:      1.子类在覆盖方法时,父类的方法如果抛出了异常,那么子类的方法只能抛出父类的异常或者该异常的子类,且只能抛出异常的子集      2.如果父类抛出了多个异常,子类只能抛出父类异常的子集,如果父类的方法没有抛出异常,那么子类重写方法时一定不能抛,只能捕捉 △throw和throws:      1.throw声明在方法内部,抛出的是异常的对象.      2.throws生命在方法上,抛出的是异常类 △编译异常和运行时异常:编译异常必须对其进行处理,而运行时异常…
△abstract不可以修饰成员变量 △一个类可以没有抽象方法,可以定义为抽象类,这样的目的是不能让其他类建立本类对象,交给子类完成. △abstract和static(可以被类名调用方法,但是抽象方法调用没有意义)final(不能被覆盖方法)private(私有方法无法覆盖) △接口只能被实现.被用接口去继承或者用类或者抽象类去实现 △接口中定义的变量全部是常量.关键修饰符为Public static final.接口中没有构造方法,实现接口的类构造方法访问的是object,接口中的方法是Pu…
/* * 方法的调用和方法重载 */ /* * 什么是方法? * 方法就是一个有名字的代码段; * 方法的调用: * 在方法里调用另外一个方法里面的东西就是方法调用; * 或者可以认为"另外一个方法的名字()"就是方法的调用; * 方法的重载: * 就是在main方法外写了多个方法名相同,但是形参列表不同的方法,在main方法中调用这个方法时括号内写上实参,程序会默认调用实参和调用方法里形参相匹配的方法; */ // 方法形式和方法的类部调用 /* public class JavaS…
最近没网,但攒了几天的博客,这次逮到机会发博客,直接三篇走起; /* * 循环终止语句: break/ break outerFor/ continue */ /* * break语句 * 1. 用于switch语句中,结束分支语句; * 2. break也可以用在循环当中,默认情况下结束离他最近第一个循环 * break: 结束循环; * return: 结束方法并返回一个值; */ /* public class JavaSE{ public static void main(String[…
/** * 里氏替换原则 : * 能使用父类的地方,一定可以使用子类 * 什么是多态 : * 父类的引用,指向子类的对象 * 多态的前提条件 : * 有继承关系的两个类 * 多态的目的 : * ☆☆☆ 代码的重用 * 多态发什么在什么时候 : * 赋值的时候 * * !!!!!!!!! 多态中的 ☆☆☆ 覆写 是特指的 成员方法!!!!!!!!! * 什么是覆写 : * 就是在子类有个和父类相同的方法 : 方法名 , 参数列表 , 返回值类型 (和修饰符列表没关系) * 1 方法名相同 : 不相…
这里是第一个文件,命名为JavaSE_01.java,我在这个文件里面声明了一个m1()方法,通过包机制,我将在另外一个文件夹里访问这个文件里的东西,确切的说是访问这个文件生成的一个class文件; package com.jaovo.webTeah.db; /* * Java包机制 * * 也就是软件包机制,软件世界中的两大难题:命名和缓存; * * 在程序命名中取一个言简意赅的名字很难,有时候名字取出来发现这个名字已经存在,包括IP,域名,MAC地址冲突等,在计算机中都出现了命名冲突的问题,…
/* * 实例化对象/对象的构造方法/this关键字 */ /* * 实例化对象 * * 就是实例化某一个类; * 从不同角度去理解的话就是: * 1. 从人的认知角度: * 就是具体化某个东西; * 如果一个人是一个类,那么这个类的实例化对象就是一个有具体属性的人,比如实例化这个人叫"张三",年龄"23",性别"男","未婚"等等,可以理解对象是对一个类的具体化;(我自己是这么认为的,当然不同人会有不同的理解,欢迎大神指教)…
/* * 递归函数 * 什么是递归? * 在一个方法的内部,对自身进行调用,又叫做递归调用 * * 递归和循环的编写都包括三部分: * 1. 初始值; * 2. 终止条件; * 3. 前进步长; * * 递归解决比较常见的问题: * 累加加的和; * 阶乘; * 斐波那契数列等; * * 可能前面两个都会有过接触,没关系,我们把三个都写一遍 * */ // 累加加和 /* * 计算1到100的和; */ /* public class JavaSE{ public static void mai…
/* * 循环语句(for循环,while和do while循环) */ /* * for循环语句 * * for循环语法: * for (表达式1;表达式2;表达式3 ){ * java语句 * } * 表达式1: 初始化表达式,最先执行,且只执行一次. * 表达式2: 必须是boolean型的表达式. * 表达式3: 步长值; * 执行过程: * 先是for循环开始执行,执行执行表达式1,并且只执行一次. * 进而判断表达式2的结果,如果是true,则执行java语句. * 再执行表达式3,…
/* 条件控制语句:if(){}else{} 语法: 第一种结构:有不执行的情况 if(boolean表达式){ //第一位真,就执行里面的语句,为假就不执行 java语句; } 第二种结构: if(boolean表达式){ java语句; }else{ java语句; } 第三种结构:多个条件判别式,有不执行情况 if(boolean表达式){ java语句; }else if(boolean表达式){ java语句; }else if(boolean表达式){ java语句; }else i…
// Java操作符\关系运算符\逻辑运算符\赋值运算符\字符串连接符\三元运算符 /* * 一 Java操作符 * * Java操作符都有哪些? * +, -, *, /, %, ++, -- * 这里需要注意 a++ 和 ++a 的区别,后面说; */ /* public class Javase{ public static void main(String[] args){ int a = 10; int b = 20; int c = 30; System.out.println( a…
/* * 基本数据类型 * * Java里的8种基本数据类型: * byte --- 1 byte = 8 bit; * short --- 2 byte = 16 bit; * int --- 4 byte = 32 bit; * long --- 8 byte = 64 bit; * * float --- 浮点型,32位的空间,数据表示形式是小数(如:3.0) * double --- 浮点型,64位的空间,数据表示形式是小数 * char --- 字符型,char型数据占用两个字节 2…
访问权限 Java中有三个访问权限修饰符:private.protected以及public,如果不加访问修饰符,表示包级可见. 可以对类或类中的成员(字段以及方法)加上访问修饰符. 类可见表示其他类可以用这个类创建实例对象. 成员可见表示其他类可以用这个类的实例对象访问到该对象: protected用于修饰成员,表示在继承体系中成员对于子类可见,但是这个访问修饰符对于类没有意义. 设计良好的模块会隐藏所有的实现细节,把它的API与它的实现清晰地隔离开来.模块之间只能通过他们的API进行通信,一…
1继承概念 面向对象程序设计有4个主要特点:抽象.封装.继承和多态性.说了类和对象,了解了面向对象程序设计的两个重要特征一数据抽象与封装,已经能够设计出基于对象的程序,这是面向对象程序设计的基础. 要较好地进行面向对象程序设计,还必须了解面向对象程序设计另外两个重要特 征--继承性和多态性.本章主要介绍有关继承的知识,多态性将在后续章节中讲解. 继承性是面向对象程序设计最重要的特征,可以说,如果没有掌握继承性,就等于没有掌握类和对象的精华,就是没有掌握面向对象程序设计的真谛. 1.1类之间的关系…
反射 框架设计的灵魂 框架:半成品软件.可以在框架的基础上进行软件开发,简化编码 反射:将类的各个组成部分封装为其他对象,这就是反射机制 好处: 可以在程序运行过程中,操作这些对象. 可以解耦,提高程序的可扩展性. 获取Class对象的方式: Class.forName("全类名"):将字节码文件加载进内存,返回Class对象 多用于配置文件,将类名定义在配置文件中.读取文件,加载类 类名.class:通过类名的属性class获取 多用于参数的传递 对象.getClass():getC…
File类 构造方法 public File(String pathname) :通过将给定的路径名字符串转换为抽象路径名来创建新的 File实例. public File(String parent, String child) :从父路径名字符串和子路径名字符串创建新的 File实例. public File(File parent, String child) :从父抽象路径名和子路径名字符串创建新的 File实例. 常用方法 获取功能的方法 public String getAbsolu…