Java笔记:包与接口

一、包

使用package关键字声明包。包的作用相当于命名空间。若没有显式地声明类所属的包,那么类将会被放到默认的包中,默认的包没有名称。包支持层次化地创建,即支持嵌套。

使用import关键字导入包。支持导入包中的类或包,若不导入声明变量则需要写上完整的路径。

import java.lang.*;//导入包
import java.util.ArrayList;//导入类

class Solution {
    ArrayList arrayList;//已导入
    java.util.LinkedList linkedList;//未导入
}

二、接口

声明接口。接口的普通方法不能存在具体实现。

interface Color {
    void setColor(int color);
    int getColor();
}

interface Line {
    void setLength(int length);
    int getLength();
}

实现接口。类可以同时实现多个接口。

class ColorfulLine implements Color, Line {
    int color;
    int length;

    ColorfulLine(int color, int length) {
        this.color = color;
        this.length = length;
    }

    @Override
    public void setColor(int color) {
        this.color = color;
    }

    @Override
    public int getColor() {
        return color;
    }

    @Override
    public void setLength(int length) {
        this.length = length;
    }

    @Override
    public int getLength() {
        return length;
    }
}

嵌套接口。接口为类或其他接口的成员时,有更多的访问限制选择。

class A {
    public interface i {
        boolean isNegative(int x);
    }
}

class B implements A.i {
    @Override
    public boolean isNegative(int x) {
        return x < 0;
    }
}

接口变量。可使用接口将共享的常量导入多个类种。

interface RBG {
    int RED = 0;
    int BLUE = 1;
    int GREEN = 2;
}

扩展接口。接口可以继承其他接口。

interface Color extends RBG {
    int ORANGE = 3;
    int YELLOW = 4;
    int CYAN = 5;
    int PURPLE = 6;
}

默认实现。接口可声明默认方法并可重写。

interface i {
    default void show() {
        System.out.println("Hi");
    }
}

class A implements i {
    @Override
    public void show() {
        System.out.println("Hello");
    }
}

变量成员与静态方法可直接被调用。

interface i {
    int val = 0;

    static void show() {
        System.out.println(val);
    }
}

class Solution {
    public static void main(String[] args) {
        i.show();
        System.out.println(i.val);
    }
}

原文地址:https://www.cnblogs.com/arseneyao/p/8444798.html

时间: 2024-11-05 20:49:28

Java笔记:包与接口的相关文章

Android 网络编程 API笔记 - java.net 包相关 接口 api

Android 网络编程相关的包 : 9 包, 20 接口, 103 类, 6 枚举, 14异常; -- Java包 : java.net 包 (6接口, 34类, 2枚举, 12异常); -- Android包 : android.net 包 (1接口, 19类, 3枚举, 1异常), android.net.http 包 (6类), android.net.nsd 包 (3接口, 2类), android.net.rtp (4类), android.net.sip 包 (1接口, 9类, 1

4.8-全栈Java笔记:包机制

包机制是java中管理类的重要手段. 开发中,我们会遇到大量同名的类,通过包我们很容易对解决类重名的问题,也可以实现对类的有效管理. 包对于类,相当于,文件夹对于文件的作用. package 我们通过package实现对类的管理,package的使用有两个要点: 1.通常是类的第一句非注释性语句. 2.包名:域名倒着写即可,再加上模块名,便于内部管理类. [示例1]package的命名举例 com.sun.test; com.oracle.test; com.bjsxt.gao.test; co

Java笔记8-抽象接口

高级特性部分: 抽象(abstract) 接口(interface) 提纲: 抽象类的定义和使用 模板设计模式的使用 接口的定义和使用 回调函数 区别抽象类和接口的异同 软件设计原则---------------------------------------------------------------------抽象类 定义: public abstract class XXX{ //1.抽象类中可以有构造方法,但是抽象类不能够被实例化 //2.抽象类中可以普通属性 //3.抽像类中可以有

JAVA笔记6__抽象类/接口/多态/instanceof关键字、父类设计法则

/** * 抽象类:很多具有相同特征和行为的类可以抽象为一个抽象类 * 1.抽象类可以没有抽象方法,有抽象方法的类必须是抽象类 * 2.非抽象类继承抽象类必须实现抽象方法[可以是空实现] * 3.抽象类可以有方法和属性 * 4.抽象类不能被实例化 * 5.抽象类不能声明为final * 6.抽象类可以有构造方法[不代表实例化对象] */ public class Main { public static void main(String[] args) { Goddess m1 = new Go

Android 网络编程 API笔记 - java.net 包 权限 地址 套接字 相关类 简介

Android 网络编程相关的包 : 9 包, 20 接口, 103 类, 6 枚举, 14异常; -- Java包 : java.net 包 (6接口, 34类, 2枚举, 12异常); -- Android包 : android.net 包 (1接口, 19类, 3枚举, 1异常), android.net.http 包 (6类), android.net.nsd 包 (3接口, 2类), android.net.rtp (4类), android.net.sip 包 (1接口, 9类, 1

C++学习笔记(十三):类、包和接口

看标题感觉这些术语和C++没有什么关系啊,包和接口是Java等语言加入的概念. 这篇文章是基于Java等语言的新概念(相对于C++来说的新概念)来看C++的设计思路. 类: C++中,一个文件可以包含多个类,且文件名可以任意取.而Java中一个文件仅包含一个对外可见的类,并且文件名必须和类名一致.这样的好处是便于查找和管理多个类,C++的设计也可以参考Java来实现,一个文件只包含一个类且文件名和类名一致. 包: Java使用包来解决命名空间的问题,同一类的类文件都会放在一个包中,C++也可以把

java笔记--用ThreadLocal管理线程,Callable&lt;V&gt;接口实现有返回值的线程

用ThreadLocal管理线程,Callable<V>接口实现有返回值的线程 ThreadLocal在我的笔记"关于线程同步"的第5种方式里面有介绍,这里就不多说了. --如果朋友您想转载本文章请注明转载地址"http://www.cnblogs.com/XHJT/p/3899890.html  "谢谢-- Callable<V>接口类似于Runnable,两者都是为了哪些其实例可能被另一个线程执行的类设计的, 但是Runnable不会返回

5.5-全栈Java笔记:接口的定义和使用

接口interface 接口的作用 为什么需要接口?接口和抽象类的区别? 接口就是比"抽象类"还"抽象"的"抽象类",可以更加规范的对子类进行约束.全面地专业地实现了:规范和具体实现的分离. 抽象类还提供某些具体实现,接口不提供任何实现,接口中所有方法都是抽象方法.接口是完全面向规范的,规定了一批类具有的公共方法规范. 从接口的实现者角度看,接口定义了可以向外部提供的服务. 从接口的调用者角度看,接口定义了实现者能提供那些服务. 接口是两个模块之

9.3-全栈Java笔记:List接口常用实现类的特点和底层实现

上节我们讲到「List接口的特点和常用方法」,本节接着上节的内容继续深入学习. 课前回顾:  List接口常用的实现类有3个:ArrayList.LinkedList.Vector. 那么它们的特点和底层实现有哪些呢? ArrayList特点和底层实现 ArrayList底层是用数组实现的存储. 特点:查询效率高,增删效率低,线程不安全.我们一般使用它. 查看源码,我们可以看出ArrayList底层使用Object数组来存储元素数据.所有的方法,都围绕这个核心的Object数组来开展. Arra

9.4-全栈Java笔记:Map接口和实现类

现实生活中,我们经常需要成对存储某些信息.比如,我们使用的微信,一个手机号只能对应一个微信账户.这就是一种成对存储的关系. Map就是用来存储"键(key)-值(value) 对".  Map类中存储的"键值对"通过键来标识,所以"键对象"不能重复. Map 接口的实现类有: HashMap.TreeMap.HashTable.Properties等. 常用的方法: 方法 说明 Object   put(Object key, Object va