Java 应用与开发 - 面向对象编程进阶 PART1大纲 包 继承 访问控制 方法重写 关键字 super 关键字 this Java 应用与开发 面向对象编程进阶 PART1 王晓东 wangxiaodong@ouc.edu.cn 中国海洋大学 September 23, 2018 大纲 包 继承 访问控制 方法重写 关键字 super 关键字 this 学习目标 1. 掌握 Java 包、继承、访问控制、方法重写的概念、机制和 使用方法 和关键字 this 大纲 包 继承 访问控制 方法重写 关键字 super 关键字 this 大纲 包 继承 访问控制 方法重写 关键字 super 关键字 this 大纲 包 继承 访问控制 方法重写 关键字 super 关键字 this ���� 包 继承 访问控制 方法重写 关键字 super 关键字 this 大纲 包 继承 访问控制 方法重写 关键字 super 为便于管理大型软件系统中数目众多的类,解决类的命名冲突问 题以及进行访问控制,Java 引入包(package)机制,即将若干功 能相关的类逻辑上分组打包到一起,提供类的多重类命名空间。 大纲 包 继承 访问控制 方法重写 关键字 super 关键字 this JDK API 中的常用包 包名 功能说明 包的含义 java.lang Java 语言程序设计的基础类 language 的简写0 码力 | 39 页 | 614.13 KB | 1 年前3
JAVA 应用与开发 - 高级类特性October 9, 2018 ���� ��抽象类�接口的������定义方法 ��抽象类�接口的����� ����类的�类�����类�����类�匿名��类的 �� ��匿名内部类的���继承�接口实现的�法 ����类�的��方法 1 29 �� 1 抽象类 2 接口 3 抽象类�接口�� 4 ��类 5 ��类� 2 29 抽象类 �����类 抽象类 ����象的������的�象����类 getAge(){ 9 return age; 10 } 12 public abstract void eat(); //抽象方法 13 } 4 29 ����类 CODE ± 抽象类继承 1 public class Person extends Animal { 2 private String name; 3 public void setName(String name) 抽象类�����继承���类��������方�� ��重� �类��重�抽象类�的����抽象方法� �� �类���抽象方法的重写来实现�类��的��� 6 29 ��类�特性与�用 O 抽象类的特性 �类��实现��类�的��抽象方法�����类���� �为抽象类� 抽象类���实��� 问题 抽象类�����方法� O 抽象类的作用 抽象类�����继承���类��������方��0 码力 | 61 页 | 677.55 KB | 1 年前3
《Java 应用与开发》课程讲义 - 王晓东. . . . . . . . . . . . . . . . . . . . . . 34 4.2 继承 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34 4.2.1 继承的概念 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72 7.2.3 接口的实现 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73 7.2.4 接口间的继承 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74 7.2.5 接口特性总结 . . . . . . . . . . . String(offset + beginIndex, endIndex - beginIndex, value); 32 } 33 } 1. String 类是 final 类,即意味着 String 类不能被继承,并且它的成员方法都默认为 final 方法。 2. 从 String 类的成员属性可以看出 String 类其实是通过 char 数组来保存字符串的。 3. 无论是 substring 还是0 码力 | 330 页 | 6.54 MB | 1 年前3
跟我学Shiro - 张开涛eption(登录失败次数过 多)、IncorrectCredentialsException (错误的凭证)、ExpiredCredentialsException(过期的 凭证)等,具体请查看其继承关系;对于页面的错误消息展示,最好使用如“用户名/密码 错误”而不是“用户名错误”/“密码错误”,防止一些恶意用户非法扫描帐号库; 2.6、最后可以调用 subject.logout 退出,其会自动委托给 跟我学 Shiro——http://jinnianshilongnian.iteye.com/ 15 以后一般继承 AuthorizingRealm(授权)即可;其继承了 AuthenticatingRealm(即身份验证), 而且也间接继承了 CachingRealm(带有缓存实现)。其中主要默认实现如下: org.apache.shiro.realm.text.Ini AuthenticationInfo 验证信息;此信息中包含了身份及凭证;如果验 证失败将抛出相应的 AuthenticationException 实现。 SecurityManager 接口继承了 Authenticator,另外还有一个 ModularRealmAuthenticator 实现, 其委托给多个 Realm 进行验证,验证规则通过 AuthenticationStrategy0 码力 | 219 页 | 4.16 MB | 10 月前3
Java 应用与开发 - 面向对象编程进阶Person[] p = new Person[3]; 2 p[0] = new Student(); // �设 Student 类继承了 Person 类 3 p[1] = new Person(); 4 p[2] = new Graduate(); //�设 Graduate 类继承了 Student 类 父类引用对子类对象的能力屏蔽性 一个引用类型变量如果声明为父类的类型,但实际引用的是子类 Person[] p = new Person[3]; 2 p[0] = new Student(); // �设 Student 类继承了 Person 类 3 p[1] = new Person(); 4 p[2] = new Graduate(); //�设 Graduate 类继承了 Student 类 父类引用对子类对象的能力屏蔽性 一个引用类型变量如果声明为父类的类型,但实际引用的是子类 Student s1 = (Student)p1; // 合法 3 Person p2 = new Person(); 4 Student s2 = (Student)p2; // 非法 3. 无继承关系的引用类型间的转换是非法的。 1 String s = "Hello␣World!"; 2 Person p = (Person)s; // 非法 1有时我们可能需要恢复一个对象的本来面目,以发挥其全部潜力。0 码力 | 49 页 | 659.74 KB | 1 年前3
Java 应用与开发 - 线程编程方法,启动线程。 课程配套代码 ± sample.thread.FirstThreadSample.java 大纲 线程基础 线程控制 线程的同步 创建线程 创建线程的第二种方式 O 直接继承 Thread 类创建线程 1 public class TestThread3 { 2 public static void main(String args[]) { 3 Thread t run() { 9 for(int i=0; i<30; i++) { 10 System.out.println("No.␣" + i); 11 } 12 } 13 } 1. 定义一个类继承 Thread 类,重写其中的 run() 方法,加入 所需的处理逻辑; 2. 创建该 Thread 类的对象; 3. 调用该对象的 start() 方法。 大纲 线程基础 线程控制 线程的同步 接口创建线程 ▶ 可以将虚拟 CPU、代码和数据分开,形成清晰的模型; ▶ 线程体 run() 方法所在的类还可以从其他类继承一些有用的 属性或方法; ▶ 有利于保持程序风格的一致性。 O 直接继承 Thread 类创建线程 ▶ Thread 子类无法再从其他类继承; ▶ 编写简单,run() 方法的当前对象就是线程对象,可直接 操纵。 大纲 线程基础 线程控制 线程的同步 创建线程0 码力 | 82 页 | 1010.73 KB | 1 年前3
Java 应用与开发 - 类加载和反射Class 对象。 (类是某一类对象的抽象,都是 java.lang.Class 的实例) O 类加载的要点 ▶ JVM 提供类加载器(系统类加载器)来完成对类的加载。 ▶ 此外,开发者可以通过继承 ClassLoader 基类来创建自己的 类加载器。 ▶ 可以从本地文件系统、jar 包和网络方式加载类的 class 文 件。 ▶ 类加载器通常无须等到“首次使用”该类时才加载此类, Java 扩展类加载器的加载路径为 ... 扩展类加载器的Parent为 null O 分析说明 ▶ 扩展类加载器的 getParent() 方法返回 null,并不是根类加 载器。这是因为根类加载器没有继承自 ClassLoader 抽象类, 所以返回空。但实际上,根类加载器确实是扩展类加载器的 父类加载器。 ▶ 系统类加载器是 AppClassLoader 的实例,扩展类加载器是 ExtClassLoader0 码力 | 46 页 | 714.40 KB | 1 年前3
Apache Shiro 1.2.x Reference Manual 中文翻译的其他组件提供创建缓存实例和管理缓存生命周期的功能。因为 Shiro 的认证、授权、会话管理支持多种数据源,所以访问数据源时,使用缓存来提高访问效 率是上乘的选择。当下主流开源或企业级缓存框架都可以继承到 Shiro 中,来获取更快更高效 的用户体验。 Cryptography (org.apache.shiro.crypto.*) Apache Shiro 1.2.x Reference Manual 但这些功能都在一个单独的组件中管理,并且,当所有功能集中在一个类中实现是灵活和可 定制是非常困难的。 为了实现配置的简单、灵活、可插拔,Shiro在设计时实现了高模块化--尽管模块化, SecurityManager(包括它的继承类)并没有做到,相反地,SecurityManager实现更像一个 轻量级的‘容器(container)’,代表几乎所有嵌套/封装组件的行为,这种‘封装(wrapper)’设 计在上面的架构图表中已有反映。 (主要信息)匹配,需 要返回一个非空的 AuthenticationInfo 实例,用来表示来自数据源的 Subject 账户信息。 节约时间 直接实现 Realm 接口也许需要时间并容易出错,大部分用户选择继承 AuthorizingRealm 虚拟 类,这个类实现了常用的认证和授权工作流,这会节省你的时间而且不易出错。 Credentials Matching 凭证匹配 在上述 realm 认证工作流中,一个0 码力 | 196 页 | 2.34 MB | 1 年前3
Nacos架构&原理
的服务数据模型,降低运维 人员的复杂度,提升 Nacos 的易用性,在 Nacos2.0 中我们将是否持久化的数据抽象至服务级别, 且不再允许⼀个服务同时存在持久化实例和非持久化实例,实例的持久化属性继承自服务的持久化 属性。 数据⼀致性 数据⼀致性是分布式系统永恒的话题,Paxos 协议的复杂更让数据⼀致性成为程序员大牛们吹水的 Nacos 架构 < 68 常见话题。不过从协议层面上看, 载均衡有基于权 重、服务提供者负载、响应时间、标签等策略。其中 Ribbon 设计的客户端负载均衡机制,主要是 选择合适现有的 IRule、ServerListFilter 等接口实现,或者自己继承这些接口,实现自己的过滤逻 辑。这里 Ribbon 采用的是两步负载均衡,第⼀步是先过滤掉不会采用的服务提供者实例,第二步 是在过滤后的服务提供者实例里,实施负载均衡策略。Ribbon 内置的几种负载均衡策略功能还是比 dencies Nacos 最佳实践 < 294 3、定义实现类,继承 com.alibaba.nacos.api.cmdb.CmdbService,并实现相关方法。 4、在 src/main/resource/ 目录下新建目录:META-INF/services0 码力 | 326 页 | 12.83 MB | 9 月前3
Java 对象的创建过程原文链接:https://ld246.com/article/1619614850780 来源网站:链滴 许可协议:署名-相同方式共享 4.0 国际 (CC BY-SA 4.0) 概述 在之前的一篇文章《关于java继承的哪些事》简单讲了Java创建对象的过程,但具体细节当时并没有 细讲。因而本篇文章以HotSpot虚拟机为例,来讲一下Java虚拟机是如何创建一个对象的? 简单来说Java对象的创建过程总共分为5步:0 码力 | 4 页 | 389.87 KB | 1 年前3
共 23 条
- 1
- 2
- 3













