学习到内部类的时候,看到个例子
class Outer{
private String str = "abc";
public void fun(){
class Inner {
public void print(){
System.out.println(Outer.this.str);
}
}
new Inner().print();
}
}
请问这么做有什么好处?和直接写一个getter方法的区别是什么?
都是为了输出private的外部类的属性,直接写一个getter方法输出不是更方便吗?
构造函数是用于初始化类的属性,且只有在创建对象时才会调用构造函数,用于给对象分配地址
无参的构造函数,创建对象时默认调用,当程序没有明确写出有参的构造函数,系统会默认的创建一个。
有参的构造函数,创建对象时传进参数。
setter方法,是对象引用调用setter方法,并传入参数。
getter方法,对象调用getter方法,获取对象属性的值。
区别:
构造方法只有在创建对象时才会被“系统”调用且只调用一次, 而getter和setter方法是随时可以被“对象”调用
构造方法不能获取对象属性的值, 而getter可以获取对象的属性值
内部类主要解决的问题题有以下几种:
1.更好的封装,比如某个类里面的一个对象只能自己使用,不能让其他类使用,就可以用内部类,其他外部类不能访问;
2.只是用一次的类,用内部类更简便,不需要费力再创建一个对象,写个getter方法,直接就在使用的时候写就行了