`
12616383
  • 浏览: 51277 次
  • 性别: Icon_minigender_1
  • 来自: 待定
社区版块
存档分类
最新评论

core---java 之接口与内部类(持续更新)

阅读更多

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 没有任何影响。

 

 

 

0
0
分享到:
评论

相关推荐

    mybatis-generator-core-1.3.2-sources

    7. **持续集成**:为了保持代码的自动更新,可以将Mybatis Generator集成到构建工具(如Maven或Gradle)中,使其在每次构建时自动运行,确保代码与数据库模型始终保持同步。 总的来说,`mybatis-generator-core-...

    liquibase-core-3.8.9.zip

    这个Javadoc文件是开发者的重要参考资料,它详细解释了Liquibase提供的每个类、接口和方法的功能、参数及返回值。通过查阅这些文档,开发者可以更好地理解和使用Liquibase提供的各种功能,如创建变更集、指定变更...

    java源码工具-core-java:Java相关源码以及一些工具

    6. **反射与动态代理**:Java的反射机制让我们能够在运行时检查类的信息,动态代理则允许我们在不修改原有代码的情况下,为接口增加新的功能。 7. **异常处理**:源码中会展示如何优雅地处理异常,以及如何定义和...

    collection-core-1.1.zip

    《Collection Core 1.1与TeamEngine开源项目详解》 在IT领域,开源项目一直扮演着重要的角色,它们为开发者提供了丰富的工具和平台,促进了技术创新和资源共享。"collection-core-1.1.zip" 和 "teamengine.zip" ...

    WeixinBot-master_java语言开发的web版微信机器人_wxbotjava_

    该项目可能采用了Spring Boot作为基础框架,利用微信提供的API接口进行通信,并通过一系列的Java类和配置文件实现了消息监听和处理机制。开发者可以通过阅读源代码、配置文件和文档来学习如何构建类似的微信机器人。

    SUN 公司CoreJava培训教材

    - **Chapter 06 Advanced Language Features**:涉及静态、最终、访问控制、集合、反射、抽象类、接口和内部类等高级特性。 - **Chapter 07-16**:涵盖异常处理、图形用户界面(GUI)、事件模型、JFC、多线程、...

    java自学必读书目

    《Core Java》** - **作者:** Cay S. Horstmann & Gary Cornell - **主要内容:** 该书分为两卷,分别介绍Java的核心特性和高级特性。 - **涵盖知识点:** - Java语言的基础概念 - 面向对象的设计方法 - 图形...

    java学习路线.docx

    - **接口与实现类:** Java集合框架主要包括Collection和Map两大接口体系。Collection接口进一步细分为List、Set等子接口。 - **List接口:** ArrayList实现了可变大小的列表,提供了随机访问功能;LinkedList实现...

    org.springframework.core_3.1.1.RELEASE.jar

    4. `org.springframework.core.log`: 提供了日志相关的抽象,如`Log`接口,它是Spring的内部日志抽象,可以适配多种日志实现。 5. `org.springframework.core.metrics`: 引入了度量(Metrics)的概念,用于收集和...

    app后台服务器java

    - 使用JMX(Java Management Extensions)暴露内部状态,便于管理和诊断。 以上就是构建"app后台服务器java"的一些核心知识点,这些技术和实践可以帮助我们构建出稳定、高效的服务器端系统。在实际项目中,还需要...

    java问题定位技术

    3. **显式锁**:使用`Lock`接口及其实现类。 ##### 4.3 多线程编程中易犯的错误 **常见的多线程编程错误**包括: 1. **竞态条件**:多个线程访问共享资源导致的数据不一致。 2. **死锁**:两个或多个线程互相等待...

    swagger所需jar包大全

    在Spring MVC框架中,Swagger可以与之完美结合,帮助开发人员更轻松地管理API接口。这个"swagger所需jar包大全"包含了使用Swagger进行API文档构建和接口调试所需要的所有关键库。 首先,我们来看`lib`目录下的jar包...

    java_materials.rar_Help!

    1. **类与对象**:讲解面向对象编程的基础,包括类的定义、对象的创建、构造器和访问修饰符。 2. **封装、继承和多态**:这被称为面向对象的三大特性,封装是隐藏内部实现细节,提供公共接口;继承使得子类可以继承...

    dex2jar-2.1-SNAPSHOT

    它是一个开源项目,持续更新并维护,为开发者提供了一个便捷的平台来探索APK文件的内部结构。 总的来说,dex2jar-2.1-SNAPSHOT是一个强大的工具,它使得Android开发者和研究人员能够深入洞察APK文件的工作机制,...

    Zxing源码(3.3.4最新)

    ZXing,全称为“Zebra Crossing”,是一款开源的、跨平台的条形码和二维码读取与生成库。它支持多种编码格式,如QR码、Data Matrix、UPC-A、EAN-13等,广泛应用于移动设备和桌面应用中。ZXing库的设计目标是简化...

    Jbone开发规范1

    Jbone 是一个基于 Java 的微服务框架,旨在提供一套标准的项目结构和编码规范,以提升开发效率和代码质量。本文将详细解析 Jbone 的项目结构、代码组织、远程调用以及实体类定义等相关规范。 ### 1. 项目结构规范 ...

    Java maven 框架

    Maven与Spring框架的结合使用,可以方便地将Spring的依赖添加到POM中,如spring-core、spring-web、spring-context等,简化Spring应用的构建过程。Maven还可以配合Spring Boot,提供快速开发微服务的环境。 6. ...

    selenium-libs.zip

    Selenium 是一个强大的开源自动化测试框架,主要用于网页应用的测试。这个名为 "selenium-libs.zip" 的压缩包包含了运行 Selenium 所需的核心...同时,持续关注 Selenium 的更新,以获取最新的功能和修复的安全漏洞。

    java必看高级程序员的必读之物

    在IT行业,特别是Java领域,分层策略被视为高级程序员必须掌握的核心概念之一。本文将深入探讨分层策略的理论基础、实践意义以及其在Java开发中的具体应用。 #### 分层策略:构建大型系统的关键 分层策略是开发...

    jdk1.8+yarn-1.22.10.tar.gz

    1. **Lambda表达式**:JDK 1.8引入了函数式编程的概念,通过lambda表达式简化了匿名内部类的创建,使得代码更加简洁。 2. **Stream API**:提供了一种新的数据处理方式,可以对集合进行高效的并行或串行操作,如...

Global site tag (gtag.js) - Google Analytics