Object
常用方法:
toString()
将一个对象返回为字符串形式getClass()
getClass().getname()
重写toString
class A{
public String(){
return "Hello! Class name is: " + getClass().getName() + " __";
}
}
class B{
public static void main(String[] args){
System.out.print(new A());
}
}
>> Hello! Class name is: A ___
抽象类
- 关键字
abstract
abstract class A{
abstract void doit();
}
- 抽象类除了被继承没有其他意义
- 抽象方法没有方法体
接口
-
interface
---- 定义接口 -
implements
---- 使用接口
public interface doit{
public void doo();
abstract int dodo();
}
public class A implements doit{
public void doo(){
// do something
}
int dodo(int a){
return a+12;
}
}
- 接口中的方法必须是
public
orabstract
- 接口中的方法都没有方法体
- 定义的任何字段都自动
static
&finall
- 同一类可以同时使用多个接口
- 使用接口后必须实现(覆盖)接口的方法
class A extends JFrame implements intf1,intf2{
...
...
...
}
包
package 包名
---- 定义【必须在第一非注释行】import 包名.类名
---- 引用
> src > one > tada - lala.java - ClassOne.java - ClassA.java - ClassB.java |
ClassOne.java
package one
public class ClassOne{
...
}
lala.java
package one.tada
public class lala{
one.ClassOne ooh = new one.ClassOne(); // 划重点
/*
* 或者:
* import one.*
* ClassOne ooh = new ClassOne();
*/
...
}
- 指定包名后,包名称为类名的一部分
导入包
import
import java.util.*;
---- 引用包中的全部 *
import java.text.DecimalFormat;
---- 单独引用
import one.tada.*;
引用静态成员方法
import static java.lang.System.out;
import static java.lang.System.out;
class A{
public static void main(String[] args){
out.println("hello world");
}
}
final 变量、方法
final
出现位置
class ClassA{
final double PI; // 成员变量
public ClassA(){
PI = 3.14; // 可在构造方法赋值
}
void doit(final int a){ // 参数【不可改变】
...
}
void tada(){
final ONE = 1; //局部变量
}
}
- 父类中的
final
方法,子类只能调用,不能重写。 -
final
类不能被继承。
内部类、局部内部类、匿名内部类
- 内部类
class classA{
int x=10;
class classB{
int x=12;
void doit(int x){
int x_ = x++; // 参数 x
this.x++; // 局部类 x
classA.this.x--; // 外部类 x
}
}
classB mkclassB(){
return new classB();
}
}
class Lala{
// 实例化 内部类
classA a = new classA();
classB b = a.new classB();
classB bb = a.mkclassB();
}
- 局部内部类
class classA{
void doit(final String s){
class inner{
int id;
String str = s;
}
}
}
- 方法外部不能访问该类
- 如果需要在方法体中使用局部变量,需要设置局部变量为
final
- 匿名内部类
interface itfc{
}
class A{
public itfc doit(){
return new itfc(){
private int id = 12;
public int GetId(){
return id;
}
}
}
}
静态内部类
public class A{
int a = 12;
static class Inner{
void doit(){};
}
}
- 创建对象时不需要外部类对象。
- 不能从其对象访问非静态外部类的对象。
: 可以将主方法写进静态内部类。
内部类继承
class A{
class B{
}
}
class Test extends A.B{
public Test(A a){
a.super();
}
}