1 接口是什么?
接口是用来描述类具备的功能,但是并不给出具体的实现。一个类可以继承1个或者多个借口。通过接口来实现多继承。
2接口可以做什么:
在接口定义的方法不需要提供关键字public, 因为接口中所有的方法自动属于public的。
接口中可以包含多个方法,可以再接口中定义常量。
3接口不能做什么?
接口中不能含有实例域,也不能在接口中实现方法。
定义一个接口
package six;
/**
@Title Comparable.java
@description TODO
@author qinpeng
@date Jul 28, 2009 10:58:04 PM
*/
public interface Comparable {
//接口中定义的方法均为public
int comparableTo(Object other);
}
4 类实现一个接口
将类声明为实现给定的接口。
对接口所有的方法实现。
package six;
/**
@Title Employee.java
@description TODO
@author qinpeng
@date Jul 28, 2009 11:13:37 PM
*/
public class Employee implements Comparable {
public int comparableTo(Object other) {
if((Integer)other>0){
return (Integer)other;
}
return 0;
}
}
4 对象克隆与拷贝
1 对象拷贝
创建一个对象的新拷贝,他的初始状态和对象是一样的,但是他们终究引用的是同一个对象,也就是说当你修改拷贝对象时,被拷贝对象的状态也会发生改变
public class Copy {
public static void main(String[] args)throws CloneNotSupportedException {
Employee e = new Employee("pangmeimei","1224",5000D);
Employee eCopy = e;
System.out.println(e.getSalary());
eCopy.setSalary(3000D);
System.out.println(e.getSalary());
}
输出结构是:5000
3000
eCopy 是 e 的拷贝对象,当修改eCopy的域时,e 的域也会随之发生改变.
2 克隆:创建一个对象的克隆,他的初始状态和对象一直,并且以后可以改变各自的状态,相互不受影响。
package six;
import five.Employee;
/**
@Title Copy.java
@description TODO
@author qinpeng
@date Aug 4, 2009 10:17:34 PM
*/
public class Copy {
public static void main(String[] args)throws CloneNotSupportedException {
Employee e2 = new Employee("pangmeimei","1224",5000D);
Employee eOri = e2.clone();
eOri.setSalary(2000D);
System.out.println(e2.getSalary());
}
}
输出:5000
可以看出,修改克隆对象eOri 的域,对被克隆对象e 没有任何影响。
分享到:
相关推荐
7. **持续集成**:为了保持代码的自动更新,可以将Mybatis Generator集成到构建工具(如Maven或Gradle)中,使其在每次构建时自动运行,确保代码与数据库模型始终保持同步。 总的来说,`mybatis-generator-core-...
这个Javadoc文件是开发者的重要参考资料,它详细解释了Liquibase提供的每个类、接口和方法的功能、参数及返回值。通过查阅这些文档,开发者可以更好地理解和使用Liquibase提供的各种功能,如创建变更集、指定变更...
6. **反射与动态代理**:Java的反射机制让我们能够在运行时检查类的信息,动态代理则允许我们在不修改原有代码的情况下,为接口增加新的功能。 7. **异常处理**:源码中会展示如何优雅地处理异常,以及如何定义和...
《Collection Core 1.1与TeamEngine开源项目详解》 在IT领域,开源项目一直扮演着重要的角色,它们为开发者提供了丰富的工具和平台,促进了技术创新和资源共享。"collection-core-1.1.zip" 和 "teamengine.zip" ...
该项目可能采用了Spring Boot作为基础框架,利用微信提供的API接口进行通信,并通过一系列的Java类和配置文件实现了消息监听和处理机制。开发者可以通过阅读源代码、配置文件和文档来学习如何构建类似的微信机器人。
- **Chapter 06 Advanced Language Features**:涉及静态、最终、访问控制、集合、反射、抽象类、接口和内部类等高级特性。 - **Chapter 07-16**:涵盖异常处理、图形用户界面(GUI)、事件模型、JFC、多线程、...
《Core Java》** - **作者:** Cay S. Horstmann & Gary Cornell - **主要内容:** 该书分为两卷,分别介绍Java的核心特性和高级特性。 - **涵盖知识点:** - Java语言的基础概念 - 面向对象的设计方法 - 图形...
- **接口与实现类:** Java集合框架主要包括Collection和Map两大接口体系。Collection接口进一步细分为List、Set等子接口。 - **List接口:** ArrayList实现了可变大小的列表,提供了随机访问功能;LinkedList实现...
4. `org.springframework.core.log`: 提供了日志相关的抽象,如`Log`接口,它是Spring的内部日志抽象,可以适配多种日志实现。 5. `org.springframework.core.metrics`: 引入了度量(Metrics)的概念,用于收集和...
- 使用JMX(Java Management Extensions)暴露内部状态,便于管理和诊断。 以上就是构建"app后台服务器java"的一些核心知识点,这些技术和实践可以帮助我们构建出稳定、高效的服务器端系统。在实际项目中,还需要...
3. **显式锁**:使用`Lock`接口及其实现类。 ##### 4.3 多线程编程中易犯的错误 **常见的多线程编程错误**包括: 1. **竞态条件**:多个线程访问共享资源导致的数据不一致。 2. **死锁**:两个或多个线程互相等待...
在Spring MVC框架中,Swagger可以与之完美结合,帮助开发人员更轻松地管理API接口。这个"swagger所需jar包大全"包含了使用Swagger进行API文档构建和接口调试所需要的所有关键库。 首先,我们来看`lib`目录下的jar包...
1. **类与对象**:讲解面向对象编程的基础,包括类的定义、对象的创建、构造器和访问修饰符。 2. **封装、继承和多态**:这被称为面向对象的三大特性,封装是隐藏内部实现细节,提供公共接口;继承使得子类可以继承...
它是一个开源项目,持续更新并维护,为开发者提供了一个便捷的平台来探索APK文件的内部结构。 总的来说,dex2jar-2.1-SNAPSHOT是一个强大的工具,它使得Android开发者和研究人员能够深入洞察APK文件的工作机制,...
Jbone 是一个基于 Java 的微服务框架,旨在提供一套标准的项目结构和编码规范,以提升开发效率和代码质量。本文将详细解析 Jbone 的项目结构、代码组织、远程调用以及实体类定义等相关规范。 ### 1. 项目结构规范 ...
ZXing,全称为“Zebra Crossing”,是一款开源的、跨平台的条形码和二维码读取与生成库。它支持多种编码格式,如QR码、Data Matrix、UPC-A、EAN-13等,广泛应用于移动设备和桌面应用中。ZXing库的设计目标是简化...
Maven与Spring框架的结合使用,可以方便地将Spring的依赖添加到POM中,如spring-core、spring-web、spring-context等,简化Spring应用的构建过程。Maven还可以配合Spring Boot,提供快速开发微服务的环境。 6. ...
Selenium 是一个强大的开源自动化测试框架,主要用于网页应用的测试。这个名为 "selenium-libs.zip" 的压缩包包含了运行 Selenium 所需的核心...同时,持续关注 Selenium 的更新,以获取最新的功能和修复的安全漏洞。
在IT行业,特别是Java领域,分层策略被视为高级程序员必须掌握的核心概念之一。本文将深入探讨分层策略的理论基础、实践意义以及其在Java开发中的具体应用。 #### 分层策略:构建大型系统的关键 分层策略是开发...
1. **Lambda表达式**:JDK 1.8引入了函数式编程的概念,通过lambda表达式简化了匿名内部类的创建,使得代码更加简洁。 2. **Stream API**:提供了一种新的数据处理方式,可以对集合进行高效的并行或串行操作,如...