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. 经验分享之会员 SaaS 系统

    经验分享之会员 SaaS 系统 一.前言 2018年,这是不平凡的一年:互联网行业的中台战略.会员经济等模式如火如荼,同时也逐渐地走入我们公司每个人的视野.在南海集团的战略规划背景下,当时我所在的公司 ...

  2. c#获取开机时间

    public static DateTime OpenCom() { TimeSpan t = TimeSpan.FromMilliseconds(System.Environment.TickCou ...

  3. 提速15%,PaddleOCRSharp新版v4.3发布

    PaddleOCRSharp v4.3版本,已经于5月23日发布.该版本的发布,在不影响识别精度的同时,带来了10%~15%速度的提升. 项目地址:https://gitee.com/raoyutia ...

  4. 莫烦tensorflow学习记录 (2)激励函数Activation Function

    https://mofanpy.com/tutorials/machine-learning/tensorflow/intro-activation-function/ 这里的 AF 就是指的激励函数 ...

  5. 10W QPS高并发,如何防止重复下单?

    小北说在前面 10wqps高并发,如何防止重复提交/支付订单? 10wqps高并发,如何防止重复下单? 10wqps高并发,如何防止重复支付? 10wqps高并发,如何解决重复操作问题? 最近有小伙伴 ...

  6. nginx001

    本文档版权归属:陈雷雷,仅限学习交流 QQ:370460470 blog:www.chenleilei.net Nginx服务实践 简述Nginx(nginx.org) Nginx (engine x ...

  7. Yii AR事务操作

    Yii Ar事务操作,示例代码如下: $model=Post::model(); $transaction=$model->dbConnection->beginTransaction() ...

  8. shell脚本入门学习

    1 参考 [尚硅谷]Shell脚本从入门到实战_哔哩哔哩_bilibili 本文为上面链接的课程学习记录. 2 基础 shell脚本需要shell解释器进行执行,shell解释器就是一个应用程序,有多 ...

  9. C# .NET 云南农信国密签名(SM2)简要解析

    BouncyCastle库(BC库)与云南农信最大的区别是 : BC库 SM2Signer.Init()  方法比云南农信多了最后3行代码: digest.Reset(); z = GetZ(user ...

  10. edge ctrl+c 复制不起作用

    现象: 在edge中选中文字时,按一次ctrl+c,到其它程序ctrl+v,并不是你选中的内容. 需要在edge中按2次ctrl+c才行. --- 当你选中文字时,会出现一个三个点的菜单,点击后会出现 ...