java 包 接口_Java类、包、接口

类、字段、方法

构造方法,与类同名的方法,专门用于创建对象,完成初始化工作。

构造方法的方法名与类名相同。

没有返回类型,也不能写void。

构造方法的主要作用是完成类对象的初始化工作。

构造方法一般不能像普通函数那样调用,而是用new来调用。

在创建一个类的新对象的同时,系统会自动调用该类的构造方法为新对象初始化。

如果没有定义构造方法,系统会自动产生一个不带参数,方法体为空的默认构造方法。如果用户有定义,系统不再生成默认的。

方法的重载

方法含义相同,但带有不同的参数,这些方法使用相同的名字,这就是方法的重载(overloading)。多个方法用相同的名字,但是参数列表必须不同(参数个数不同,参数类型不同,参数类型顺序不同),返回值类型可以相同可以不同。构造方法也是可以重载的,方法类似。

this的使用

在方法及构造方法中,可以使用this来访问对象的字段和方法。

使用this可以解决局部变量或参数变量与字段变量同名的问题。常在构造方法中使用。

通过this("参数");来调用另一种构造方法,必须放在第一句。

this指的是调用对象本身,在static方法中,不能使用this。在所有非static方法中,都隐含了一个参数this。

类的继承

继承(inheritance)是面向对象的程序设计中的重要特征。继承得到的类为子类(subclass),被继承的的类为父类或超类(supperclass),父类包括所有被直接或间接被继承的类。不支持多重继承。子类继承父类的状态和行为,也可以修改,并添加新的状态和行为。Java中所有的类都是直接或间接的继承java.lang.Object得到的。

通过在类的声明中加入extends子句来创建一个类的子类。如果没有extends子句,默认为java.lang.Object的子类。

字段的继承、隐藏、添加

子类可以继承父类的所有字段(没有private或static修饰)。子类重新定义一个从父类那里继承的完全相同的字段变量,称为变量的覆盖。

定义子类时,加上新的字段变量,使子类比父类多一些属性。

方法的继承、覆盖、添加

父类的非私有方法可以被子类自动继承。

重新定义与父类同名的方法,实现对父类方法的覆盖(Overriding)。

方法的重载(Overloading)。

可以添加新的方法。

super的使用

super可以区分与父类同名的域与方法。super可以访问被子类隐藏的同名变量。覆盖父类同名方法后,通过super可以调用父类的方法。

通过super();可以调用父类的构造方法,此时super只能放在第一句。

父类对象与子类对象的转换

需要父类对象时可以用一个子类对象来强制转换,反之不可。

package语句作为Java源文件的第一条语句,指明该文件中定义的类所在的包。

使用Java中已经提供的类,需要import语句来引入所需要的类。Java编译器为所有程序自动引入java.lang。

import java.awt.*只能表示本层次的所有类,不包括子层次下的类。

接口

接口(interface)就是方法定义和常量值的集合。

通过接口可以实现不相关类的相同行为,而不需要考虑这些类之间的层次关系。

通过接口可以指明多个类需要实现的方法。

通过接口可以了解对象的交互界面,而不需要了解对象所对应的类。

可以把用于完成特定功能的若干特征组织成接口,凡需要实现这种特定功能的类,都可以继承这个接口。在继承接口的各个类中,要具体定义接口中各抽象方法的方法体。因而在Java中,把对接口的继承称为实现(implement)。

定义接口

[public] interfance 接口名 [extends 父接口列表]

{ //接口体

//常量域声明

[public][static][final]域类型域名=常量值;

//抽象方法声明

[public][abstract]返回值方法名(参数列表)[throw 异常列表];

}

通常接口名以able或ible结尾,表示能完成一定的行为。

接口中的字段实际上是常量,字段前面即使省略修饰符,仍然默认为public static final。

接口中的方法都是抽象方法,不能有实现体;方法前面即使省略修饰符,仍然默认为public abstract。一般省略字段和方法的修饰符。

实现接口

在类的声明部分,用implements关键字声明将要实现哪些接口。

如果实现接口的类不是abstract的抽象类,则在类的定义部分必须实现所有抽象方法。

类在实现某接口的抽象方法时,必须使用相同的方法头。

接口的抽象方法的访问限制符都已指定为public,所以在类的实现方法时,必须显示地使用public修饰符。

一个类只能有一个类但是可以实现多个接口。在implements子句中用逗号分隔。

接口可以作为一种引用类型来使用。任何实现该接口的类的实例都可以存储在该接口类型的变量中,通过这些变量可以访问类所实现的接口中的方法。

枚举

枚举实际上是用一些符号来表示的常量。定义枚举可以使用关键字enum。enum Direction{EAST,SOUTH,WEST,NORTH} Direction dir=Direction.NORTH;

枚举类型不是整数,而是引用类型,本质是类实现的。所以可以定义成员方法及构造方法,也可以实现接口。所有枚举都继承了java.lang.Enum类,所以可以覆盖toString()方法,也可以使用values()方法来取得所有成员,每个成员都有ordianl()方法得到序号。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值