Java基础08(类与对象)
目录
引入
一、 Java类中自带的方法
二、Java的一些错误
三、⭐更改器和访问器⭐
引入
面向对象简称OOP
对象就是堆里面的一块内存区域
面向对象的特征:封装,继承,多态,抽象
直接打印就是--得到结果形式为”路径+类型+数据的内存地址“,如下:
一、 Java类中自带的方法
object类是所有类的父类,创建后就可以直接继承以下方法:
e.g 父类里面的toString()方法就是用来获取数据类型和内存地址
但是创建子类后可以重写这些被继承的父类方法:
e.g:如下重写toString方法,对原来的数据进行覆盖:
二、Java的一些错误
静态方法是依托类存在的,像下面这种没有new,以指针形式存在的数据,无法调用类才具备的方法们,除非让它指向一个对象。
null错误:
类名是大写,对象是小写
能通过类名直接调用的是静态方法,通过对象调用的是非静态方法
三、⭐更改器和访问器⭐
private--只能自己类内调用,不能被其他类调用
用private搭配访问器和更改器可以实现对外的可读和可写模式控制
问题:
如下的访问器实际上并不安全,把数据的内存地址给暴露出去了
真正安全的方法:对原数据进行深拷贝:
【访问器中必须是深拷贝,才能保证安全--注:数组需要手动循环进行深拷贝;其他类型像int等单个元素,默认就是深拷贝的;字符串类型也不用深拷贝,因为字符串是不可变的,不用担心这个问题】
public int[] getFlag3(){
int[] ss=new int[flag3.length];
for(int k=0;k<ss.length;k++){
ss[k]=flag3[k];
}
return ss;
}
以下给出一个事例问题:
【注:此时对ee和rr的修改并不会影响到原数据,因为进行了深拷贝】