面向对象(上)
构造方法
1.方法名和类名相同
2.方法名前没有返回值类型的声明
3.方法中不使用return返回值
注意:每个类中都有至少一个构造方法,如果没有,系统会自动创建一个默认的构造方法。
this关键字
1.通过this关键字明确访问一个类的成员变量,解决与局部变量名冲突的问题
2.通过this调用成员方法
3.可以通过this([参数]…)调用构造方法,注意①只能在构造方法中调用构造方法②使用this调用的构造方法必须在第一行③不能在同一个类的构造方法中使用this互相调用
class Person{
String name;
int age;
public Person(String name,int age){
this.name=name;
this.age=age;
}
public Person(String name){
this.name=name;
}
public void speak(){
System.out.println("我叫"+name+",今年"+age+"岁");
}
}
public class test2 {
public static void main(String[] args) {
Person p1=new Person("小米");
Person p2=new Person("小白",17);
p1.speak();
p2.speak();
}
}
stati关键字
1.静态变量:使用static修饰的变量称为静态变量
注意:不能修饰局部变量
2.静态方法
3.静态代码块
内部类
1.成员内部类
例
class Outer{
private int num=4;
public void test(){
Inner inner=new Inner();
inner.show();
}
//定义内部类
class Inner{
void show(){
System.out.println("num="+num);
}
}
}
public class test2{
public static void main(String[] args) {
Outer outer=new Outer();
outer.test();
}
}
通过外部类去访问内部类:
外部类名.内部类名 变量名=new 外部类名().new 内部类名();
2.静态内部类
创建静态内部类对象的语法:
部类名.内部类名 变量名=new 外部类名.内部类名();
class Outer{
private static int num =6;
//下满代码定义一个静态内部类
static class Inner{
void show(){
System.out.println("num="+num);
}
}
}
class test{
public static void main(String[] args) {
Outer.Inner inner=new Outer.Inner();//创建内部类对象
inner.show(); //调用内部类方法
}
}
注意:1.在静态内部类中只能访问外部类的静态成员
2.在静态内部类中可以定义静态成员,非静态内部类中不能定义
3.方法内部类
class Outer{
private int num=4;
public void test(){
//在方法中定义内部类
class Inner{
void show(){
System.out.println("num="+num);
}
}
Inner inner=new Inner();//创建内部类对象
inner.show(); //调用内部类的方法
}
}
public class test2{
public static void main(String[] args) {
Outer outer=new Outer();//创建外部类方法
outer.test();
}
}