方法:
1、 成员方法(实例方法):[修饰符] 返回值类型 标识符(参数列表){ 、、、}
2、 静态方法:(类的方法):[修饰符] static 返回值类型 标识符(参数列表){ 、、、}
3、 构造方法:[访问修饰符] 类名(){ 、、、}
形参列表中的数据类型可以为:1、基本数据类型
2、引用数据类型:对象(String、数组、集合、封装类、、、)
注意:构造方法在实例化对象的时候执行构造方法。
作用:初始化成员变量。
补充:
方法重载:重载(overloading)是在一个类里面,方法名字相同,参数不同。与返回值类型、访问修饰符无关。
规则:(1)参数类型不同
(2)参数个数不同
(3)参数顺序不同
内部类:
1、 成员内部类:成员内部类声明在类中,方法体、代码块之外。和成员变量、成员方法在同一级别。
实例:
package com.test02;
publicclassOut {
//成员变量
public inta= 1;
//成员内部类
public classInner{
public inta= 2;
//内部类的成员方法
public void print(){
//执行内部类中的实例变量a
System.out.println(a);
//执行外部类的实例变量a
System.out.println(Out.this.a);
}
}
public staticvoidmain(String[] args){
//先实例化外部类
Outo=newOut();
//使用外部类对象,再实例化内部
Out.Innerinner=o.newInner();
inner.print();
}
}
2、 静态内部类:声明位置参考成员内部类。在修饰符后加上static。
实例:
package com.test02;
publicclassOut {
//成员变量
public staticint a= 1;
public intb= 3;
//静态内部类
public staticclass Inner{
public staticint a= 2;
public staticvoidprint(){
//执行静态内部类中的静态变量a
System.out.println(a);
//执行外部类的静态变量a
System.out.println(Out.a);
//执行外部类的实例变量
Outo=newOut();
System.out.println(o.b);
}
}
public staticvoidmain(String[] args){
//先实例化外部类
Outo=newOut();
//使用外部类对象,再实例化内部
Out.Innerinner=newOut.Inner();
inner.print();
}
}
3、 局部内部类:声明在方法体或代码块内,作用域范围在方法体或代码块内。
实例:
package com.test02;
publicclassOut {
public void method(){
//局部内部类
classInner{
//局部内部类的成员方法
public void print(){
System.out.println("局部内部类");
}
}
//实例化局部内部类
Innerinner=newInner();
inner.print();
}
public staticvoidmain(String[] args){
Outo=newOut();
o.method();
}
}
4、 匿名内部类:声明位置同局部内部类一样,前提条件:必须继承一个类或实现一个接口,匿名内部类的声明和实例化对象是同时进行的。
一般使用于获得抽象类或接口对象。
语法:
父类名/接口名 对象名 = new 父类名/接口名(){
//匿名内部类成员
}
实例:
package com.test02;
publicclassOut1 extends Out {
public class Out {
public void method(){
//匿名内部类对象
Outf=newOut(){
};
}
} }
抽象类不能实例化,只能通过继承,然后实例化子类,实现实例化对象。