java中的类
内部类
内部类:在类的内部定义的类。内部类可以调用该外部类的属性。
格式:class 类名{}
public class Student {局部类
private int age;
private String name;
public class Pen{ //初学者注意:类名不能加括号()
//内部类中可以调用外部类的name与age
String color;
String brand;
String name;
public String getName() {
return
局部类:在方法中定义的类。
格式:class 类名{}
public class Student {匿名内部类(部分参考他人)
private int age;
private String name;
//这是一个学习的方法
public void study(){
System.out.println("正在学习");
//局部类 在方法中的类
class Books{
String name;
int page;
public int getPage() {
return page;
}
public void setPage(int page) {
this.page = page;
}
}
}
匿名内部类:匿名内部类就是没有名字的内部类。主要在观察者模式内使用,在Android主要事件里使用。如果满足下面的一些条件,使用匿名内部类是比较合适的:
(1)当只是用一次这个类的对象时使用。
(2)类在定义后马上用到。
(3)类非常小(SUN推荐是在4行代码以下)
在使用匿名内部类时,要记住以下几个原则:
(1)匿名内部类不能强制造型
(2)匿名内部类不能有构造器。
(3)匿名内部类不能定义任何静态成员、方法和类。
(4)匿名内部类不能是public,protected,private,static。
(5)只能创建匿名内部类的一个实例。
(6)一个匿名内部类一定是在new的后面,用其隐含实现一个接口或实现一个类。
因匿名内部类为局部内部类,所以局部内部类的所有限制都对其生效。
//匿名内部类
Paper paper2=new Paper(){
public String getPapersize(){
return "B5";
}
};//这里需要一个;号
//在方法中返回一个匿名内部类
public class Parcel6 {
public Contents cont() {
return new Contents() {
private int i = 11;
public int value() {
return i;
}
}; // 在这里需要一个分号
}
public static void main(String[] args) {
Parcel6 p = new
cont()方法将下面两个动作合并在一起:返回值的生成,与表示这个返回值的类的定义!
抽象类(abstract)抽象类:在解决实际问题时,一般将父类定义为抽象类。利用abstrack定义抽象类。抽象类中的方法可以有抽象方法,也可以有其他的方法。也就是说抽象类不一定有抽象方法。
格式:public abstract class+类名{}
注意:抽象类中不一定有抽象方法。
抽象类不能创建对象,抽象类中的抽象方法可以在子类中实现具体的方法。
例如:
public abstract class Animal {
public abstract void voice();
//此处为抽象方法,该方法的具体实现只能在子类中实现。
public void sleep(){
System.out.println("小动物们睡觉了");
}
//此为具体的方法,可见抽象类中不一定必须是抽象的方法。
抽象方法:只有方法名没有方法体 无具体实现,可以在子类中实现。
注意: 抽象方法必须是在抽象类中。
抽象方法必须在抽象类中否则出错,如下:
版权声明
本文仅代表作者观点,不代表博信信息网立场。