关于面向对象的几点问题:
1.权限修饰符:
public随意使用 private仅限本类(class)使用,即使被继承也不能用
Protected仅限本包中使用 (注意明确继承、包、权限修饰符之间的影响)
还有默认的default权限,默认本包
那么问题来了,protected和default有什么区别?
A:protected只能修饰成员变量和成员函数
B:被修饰的父类的变量和函数允许被跨包继承的子类访问
2.this关键字:
“java语言中规定使用this作为本类对象的引用,this关键字用于引用‘本对象’的成员变量和成员方法。
还可以作为方法的返回值,返回一个“引用”
3.构造方法:
【对象的创建就是通过构造方法进行的】
1 没有返回值
2 名称要与本类的名称相同
3 (值得重载overload)
4 (没有明确定义的话编译器会自动加一个无参默认的构造方法)
4.static关键字:静态常量、静态变量和静态方法
1 静态成员变量可以直接用类名调用
2 静态变量锁定“一个”内存区。一个类中生成了新对象,开辟了新的内存空间。当新对象使用成员变量时会另外开辟内存(每个对象都有这个变量,然而它们分别占用不同的内存空间以存储各个对象各自不同的数据)【然而静态变量并不会,它只使用唯一的内存空间,所有对象都使用这同一个空间中的数据】------>为了共享!
3 静态方法中不可以使用this关键字,也不可以直接使用非静态方法。这会让方法存在变数
4 用static声明的东西统称为静态成员,归类所有。
网友评论