当前位置: 首页 > article >正文

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的修改并不会影响到原数据,因为进行了深拷贝】


http://www.kler.cn/a/390744.html

相关文章:

  • Objection
  • 物理设备命名规则(Linux网络服务器 15)
  • Unity资源打包Addressable资源保存在项目中
  • 数据库基础(14) . MySQL存储过程
  • 【单例模式】饿汉式与懒汉式以及线程安全
  • 数据重塑:长宽数据转换【基于tidyr】
  • Java字符串的处理
  • SSE (Server-Sent Events) 服务器实时推送详解
  • 力扣-Hot100-哈希【算法学习day.30】
  • HTMLCSS: 日落卡片
  • MySQL核心业务大表归档过程
  • Attention is all you need详细解读
  • STM32问题集
  • ES5 和 ES6 数组的操作方法
  • ISAAC SIM踩坑记录--ubuntu 22.04操作系统安装
  • 小水电远程集控运维系统简介及应用价值
  • Unity WebGL交互通信
  • 【数字静态时序分析】复杂时钟树的时序约束SDC写法
  • 视觉SLAM数学基础
  • 《重学Java设计模式》之 原型模式
  • K8资源之endpoint资源EP资源
  • 2024年计算机视觉与图像处理国际学术会议 (CVIP 2024)
  • (十)Python字典基本操作
  • Netty实现WebSocket Server是否开启压缩深度分析
  • 6. ARM_ARM指令寻址
  • 【MongoDB】MongoDB的存储引擎及Wiredtiger的读/写缓存、数据结构设计、Page生命周期等实现原理(超详细)