Java 中的一些知识点

与C++相关【了解的不是很多】

  • 在Java程序中:一个方法以 ; 结尾,并且修饰符列表中有 native 关键字

  • 代表:底层调用C++写的dll程序【dll动态连接库文件】

toString方法

  • 来源:

    toString方法源自 java.lang.Object 中的方法

  • 因为所有的类默认继承Object所有,几乎所有类都有toString方法

  • toString方法实现

        // 以下是官方原文
    public String toString() {
    return getClass().getName() + "@" + Integer.toHexString(hashCode());
    // 返回:类名字@哈希加密的内存地址
    }
  • toString方法的作用是什么?

    作用:将“java对象”转换“字符串形式”

  • toString方法的特性

        System.out.println(引用.toString());
    等价
    System.out.println(引用);
  • toString方法的价值:一般用于重写后用在开发时,数据的打印查看

    示例:

    public class ToStringTest {
    
        public static void main(String[] args) {
    
            MyDate date1 = new MyDate();
    MyDate date2 = new MyDate(2022, 1, 18); // toString()方法已经重新
    System.out.println(date1.toString());
    System.out.println(date1); System.out.println(date2.toString());
    System.out.println(date2);
    } } class MyDate { private int year;
    private int month;
    private int day; public MyDate() {
    this(1970,1,1);
    } public MyDate(int year, int month, int day) { this.year = year;
    this.month = month;
    this.day = day;
    } public String toString() {
    return this.year + "年" + this.month + "月" + this.day + "日";
    } }

super

  • super 是一个关键字

  • super和this对比学习

    this:

    • this能够出现在实例方法和构造方法中

    • this的语法是: this.this()

    • this不能使用在静态方法中

    • this. 大部分情况都可以省略

    • this. 什么时候不可以省略?

      public void setName(string name){
      this.name = name;
      }
    • this() 只能出现在构造方法第一行,通过当前的构造方法去调用“本类”中的其他构造方法

    super:

    • super能够出现在实例方法和构造方法中

    • super的语法是: this.this()

    • super不能使用在静态方法中

    • super. 大部分情况都可以省略

    • super. 什么时候不可以省略?

      如果父类和子类中有重名属性,你需要访问父类则必须使用 super.

    • super() 只能出现在构造方法第一行,通过当前的构造方法去调用“父类”中的其他构造方法;目的:构建子类对象的时候,先初始化父类特征

  • super()

    表示通过子类的构造方法调用父类的构造方法

  • 重要结论:

    当一个构造方第一行,没有this()或super()的话,会默认存在一个super()【无参】

    一个类如果手动提供一个构造方法,那么无参数构造系统将不再提供

  • 注意:this()与super()不共存

  • super(实参列表)初始化当前对象的父类型特性

总结

this: 本类

super: 当前类的父类

可以使用super访问或调用在当前类中被覆盖的方法和属性【注意静态问题,super是相对与this】

可以粗浅的理解:super相当于当前类的父类的this【并不准确,下面测试】

// 测试
public class Test{ public static void main(String[] args){ Test test_1 = new Test(); test_1.doSome();
} // 实例方法
public void doSome(){ // Test@2f89e2d1
System.out.println(this);
// println输出 "引用" 默认调用toString()方法 System.out.println(super); // 报错
}
}

通过这个测试得出的结论:

  • super 不是引用,不保存内存地址,也不指向任何对象
  • super 只是代表当前对象内部的那一块父类型的特征

Java 中的一些知识点的更多相关文章

  1. java中的小知识点

    1.数据类型的相关知识点 1.1.java内置封装类的转换 java中内置的封装类Byte.Integer.Float.Double和Long都可以转换成double类型的数值:因为这些封装好的类中都 ...

  2. 面试中关于Java中涉及到知识点(转)

    本篇文章会对面试中常遇到的Java技术点进行全面深入的总结,帮助我们在面试中更加得心应手,不参加面试的同学也能够借此机会梳理一下自己的知识体系,进行查漏补缺. 1. Java中的原始数据类型都有哪些, ...

  3. Java中继承相关知识点

    继承 1.继承概述 继承是面向对象的三大特征之一.可以使得子类具有父类的属性和方法,还可以在子类中重新定义,追加属性和方法 1.1 继承的格式 格式:public class 子类名 extends ...

  4. Java中关键的知识点

    JVM,运行是内存模型 Java 反射 Java 注解 函数式接口 lambda表达式/流式计算 动态代理

  5. Java中多态相关知识点

    多态 1.多态概述 同一个对象在不同时刻表现出的不同形态 多态的前提和体现: 有继承/实现关系 有方法重写 有父类引用指向子类对象(Animal a = new Cat();) 2.多态中的成员访问特 ...

  6. Java中StringBuilder相关知识点

    StringBuilder 1.StringBuilder概述 如果对字符串进行拼接操作,每次拼接都会构建一个新的String对象,既耗时又浪费空间,而且这种操作还不可避免.我们可以通过StringB ...

  7. 【Java基础】Java中你必须知道的知识点

    目录 Java中面向对象的基础知识 1. 什么是面向对象  2. 三大基本特征和五项基本原则 3. Java的平台无关性 4. 值传递和引用传递 5. 方法重载和重写 6. 基本数据类型 7. 包装类 ...

  8. Java中容易遗漏的小知识点( 一 )(为了和小白一样马上要考试的兄弟准备的,希望小白和大家高过不挂)

    笔者csdn博客同文地址:https://blog.csdn.net/weixin_45791445/article/details/106597515 我是小康小白,一个平平无奇的Java小白.热爱 ...

  9. 关于Java中的String类知识点小总结

    Java中的String类知识点 前言 在 Java 中字符串属于对象,Java 提供了 String 类来创建和操作字符串. 如何创建字符串 最简单的方式 String str = "he ...

  10. Java语言中的这些知识点有没有用过,工作中有没有入过这些坑?

    在Java语言中,有一些相对生僻的知识,平时用的机会可能不是很多,但如果不了解不掌握这些知识点的话,也可能会掉入陷阱之中,今天我们就来初步梳理一下: 1. goto是java语言中的关键字. &quo ...

随机推荐

  1. C#老码农的职业生涯

    开头白 大家好,我是tibos,19年10月1号由深圳回武汉的码农,目前入职武汉福禄网络,最近刷到的年终总结也比较多,赶在这最后一天,我也来凑个热闹 心路历程 -> 菜鸟入江湖 13年开启码农的 ...

  2. 卷爆短剧出海:五大关键,由AIGC重构

    短剧高温下,谈谈AIGC的助攻路线. 短剧,一个席卷全球的高温赛道. 以往只是踏着霸总题材,如今,内容循着精品化.IP化的自然发展风向,给内容.制作.平台等产业全链都带来新机,也让短剧消费走向文化深处 ...

  3. sqlerver 报错5120 无法为该请求检索数据 系统找不到指定路径

    背景: 数据库mdf文件所在盘符F盘被删除了,也就是文件不存在了,sqlserver管理器打开就报错5120,并且正常路径的数据库也不显示出来. 要让正常的数据库显示出来,就需要删除掉已经没有的数据库 ...

  4. 深入理解Vue 3:计算属性与侦听器的艺术

    title: 深入理解Vue 3:计算属性与侦听器的艺术 date: 2024/5/30 下午3:53:47 updated: 2024/5/30 下午3:53:47 categories: 前端开发 ...

  5. 阅读LXH《FFMPEG+SDL的视频播放器》总结

    一.原文地址 https://blog.csdn.net/leixiaohua1020/article/details/46889389 在此向雷霄骅致敬!!! 二.视频播放器实现思路 1)视频播放器 ...

  6. NOIP模拟98(多校30)

    T1 构造字符串 解题思路 不算特别难的题,但是有一点细节... 首先需要并茶几缩一下点,然后判断一下是否合法,由于我们需要字典序最小的,因此我们应当保证一个联通块中标号较小的点为根节点. 那么对于所 ...

  7. NOIP模拟75

    前言 先吐槽一下出题人,T2 牛马数据连棵树都不是.. T3 描述不清楚.. T1 如何优雅的送分 解题思路 我考场上还真以为是个送分题,然而... 莫比乌斯反演... 对于一个数字 n 有 \(2^ ...

  8. 【VMware vSphere】使用vSphere Lifecycle Manager(vLCM)管理独立主机和集群的生命周期。

    vSphere Lifecycle Manager(vLCM)是 vSphere 7 中引入的一项新功能,它提供了一种集中式.自动化和简单性的方式来管理和升级 vSphere 基础架构组件(如vCen ...

  9. umask永久修改用户创建文件权限

    Linux里永久设置用户创建文件权限的配置文件是/etc/profile.可以在该文件中添加umask命令来设置默认权限.具体操作步骤如下: 打开/etc/profile文件:sudo vi /etc ...

  10. python-使用pyecharts绘制各省份985学校数量图

    1.环境 代码运行环境:python3.7 相关的库:pyecharts 1.7.1 代码编辑器:visual studio code 2.目的 通过使用pyecharts库,来绘制全国各省985高校 ...