java06

目录

一、java接口

(一)接口

(二)接口的继承

(三)接口的多继承

(四)标记接口

(五)接口与类相似点

(六)接口与类的区别

(七)接口特性

(八)抽象类与接口的区别

二、java枚举

(一)枚举

(二) values(), ordinal() 和 valueOf() 方法

 (三)枚举类成员

三、 java包


一、java接口

(一)接口

是java中的䘝抽象类型,是抽象方法思维集合,接口通常以interface来声明。一个类通过集成接口的方式从而继承接口的抽象方法
接口并不是类,编写接口的方式和类很相似,但是它们并不属于同一种概念,类描述对象的属性和方法,接口则包含类要实现的方法
除非实现接口的类是抽象类,否则要定义接口中的所有方法
接口无法被实例化,但是可以被实现,一个实现接口的类,必须包含接口内描述的所有方法的实现,否则就必须声明这个类为抽象类
在java中接口类型可以用来声明一个变量,它们可以成为一个空指针,或者被绑定在一个以此接口实现的对象
//定义接口
 interface NameOfInterface {
}

(二)接口的继承

// 文件名: Sports.java
interface Sports
{
    public void setHomeTeam(String name);
    public void setVisitingTeam(String name);
}

// 文件名: Football.java
interface Football extends Sports
{
    public void homeTeamScored(int points);
    public void visitingTeamScored(int points);
    public void endOfQuarter(int quarter);
}

// 文件名: Hockey.java
interface Hockey extends Sports//实现接口需要实现6个方法
{
    public void homeGoalScored();
    public void visitingGoalScored();
    public void endOfPeriod(int period);
    public void overtimePeriod(int ot);
}

(三)接口的多继承

interface02 Hockey extends Sports, Event

(四)标记接口


interface EventListener
{}

//常用的继承接口是没有包含任何方法的接口
//标记接口是没有任何方法和属性的接口,它仅仅表名它的类属于一个特定的类型,供其他代码来测试允许做一些事情
//标记接口作用:简单来说就是给某个对象打个标识,使对象拥有某个或某些特权
没有任何方法的接口被称为标记接口,标记接口主要用于以下两种目的:
建立一个公共的父接口
向一个类添加数据类型

(五)接口与类相似点

一个接口可以有多个方法
接口文件保存在.java结尾的文件中,文件名使用接口名
接口的字节码保存在class结尾的文件中
接口相应的字节码文件必须与包名称匹配的目录结构中

(六)接口与类的区别

接口不能用于实例化对象
接口中没有构造方法
接口中所有方法必须为抽象方法
接口不能那个包含成员变量,除了static和final变量
接口不是被类继承而是被类实现
接口支持多继承

(七)接口特性

接口中的每一个方法都是隐含的抽象方法 被隐式指定为 public abstract(只能)
接口中可以含有变量,但是会被隐式指定为public static final 变量
接口中的方法不能在接口中实现,只能由实现接口的类来实现接口中的方法

(八)抽象类与接口的区别

抽象类中的方法可以有方法体,就是可以实现方法的具体功能,但是接口中的方法不行
抽闲每个类的成员可以是个只能够是各种类型的,但是接口中的成员变量只能是public staticfinal类型的
接口中不能含有静态代码块以及静态方法(用static修饰的方法)而抽象画类可以
一个类只能继承一个抽象类,但是可以继承多个接口

二、java枚举

(一)枚举

枚举是一个特殊的类,一般表示一组常量
enum Color
{
    RED, GREEN, BLUE;
}

(二) values(), ordinal() 和 valueOf() 方法

 values():返回枚举中的所有值
ordinal():找到每个枚举常量的索引(下标)
valueOf() 方法:返回指定字符串的枚举常量

 (三)枚举类成员


枚举可以跟普通类一样有自己的变量、方法和构造函数,构造函数只能使用private访问修饰符,所以外部无法调用
枚举类既可以包含具体方法也可以包含抽象方法,如果枚举类具有抽象方法,则枚举类的每个实例都要实现它

//枚举
enum Color
{
    RED, GREEN, BLUE;
    // 构造函数
    private Color()
    {
        System.out.println("Constructor called for : " + this.toString());
    }

    public void colorInfo()
    {
        System.out.println("Universal Color");
    }
}
public class Main06 {


    public static void main(String[]args)
    {
        //枚举使用
        Color c1 = Color.RED;//不需要new一个,因为在枚举类中已经创建好了
        System.out.println(c1);
        //调用枚举类的方法
        c1.colorInfo();
        //通常使用switch的时候用枚举多一点
        //定义进行比较的颜色
        Color myVar = Color.BLUE;
    switch(myVar) {
        case RED:
            System.out.println("红色");
            break;
        case GREEN:
            System.out.println("绿色");
            break;
        case BLUE:
            System.out.println("蓝色");
            break;  }

//for增强
        for (Color c2 : Color.values())
        {
            System.out.println(c2);
        }
//查看索引
        System.out.println("查看索引");
        for (Color c2 : Color.values())
        {
            System.out.println(c2.ordinal());
        }
//返回指定字符串的枚举常量
        System.out.println(Color.valueOf("RED"));
//返回指定字符串的索引
        Color c3= Color.RED;
        System.out.println(c3.ordinal());

}
}

三、 java包

为了更好的组织类,java提供了包机制,用于区别类名的命名空间
包的作用:
1、将功能相似或者相关的类和接口组织放在同一个包中,方便类的查找和使用
2、如同文件夹一样,包也采用了树形目录的存储方式,同一个包中的类的名字是不同的,不同的包中的类的名字是可以相同的,当同时调用两个不同包中的同名类时,应该加上包名以示区别
3、
java包(package)包也限制了访问权限,拥有访问权限的类才能访问某个包中的类
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值