Object
所有类的超类,没有extends的类默认继承Object,其中方法适合所有类。
toString()
public String toString()
{
<span style="white-space:pre"> </span>getClass().getName() + '@' + Integer.toHexString(hashCode())
}
class Obj //默认继承Object
{
}
class Demo
{
<span style="white-space:pre"> </span>public static void main(String[] args)
{
<span style="white-space:pre"> </span>Obj o=new Obj();
<span style="white-space:pre"> </span>System.out.println(o); //相当于System.out.println(o.toString());
}
}
内部类
类中可以定义类,内部类可以被public和static修饰。
内部类可以访问外部类的成员,外部类不能访问内部类成员。
static修饰后的内部则变成外部类,不能访问外部内非静态成员。
内部类创建对象从外部类之外调用
Outer o=new Outer(); //Outer为外部类,Inner为内部类。
Outer.Inner i=o.new Inner();
i.show(); //show为内部类方法。
方法内部类访问方法中的变量,其变量必被final修饰。
内部类是可以继承接口和父类的。
匿名内部类
interface Student
{
void say();
}
class Person
{
void get(Student s)
{
s.say(); //其实就是多态。
}
public void test()
{
get(new Student() //创建一个继承Student的匿名对象,其方法一起传到get方法中。
{
public void say()
{
System.out.println("I'm a student.");
}
}
);
}
}
class PersonDemo
{
public static void main(String[] args)
{
Person p =new Person();
p.test();
}
}