Java 中的一些知识点
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 中的一些知识点的更多相关文章
- java中的小知识点
1.数据类型的相关知识点 1.1.java内置封装类的转换 java中内置的封装类Byte.Integer.Float.Double和Long都可以转换成double类型的数值:因为这些封装好的类中都 ...
- 面试中关于Java中涉及到知识点(转)
本篇文章会对面试中常遇到的Java技术点进行全面深入的总结,帮助我们在面试中更加得心应手,不参加面试的同学也能够借此机会梳理一下自己的知识体系,进行查漏补缺. 1. Java中的原始数据类型都有哪些, ...
- Java中继承相关知识点
继承 1.继承概述 继承是面向对象的三大特征之一.可以使得子类具有父类的属性和方法,还可以在子类中重新定义,追加属性和方法 1.1 继承的格式 格式:public class 子类名 extends ...
- Java中关键的知识点
JVM,运行是内存模型 Java 反射 Java 注解 函数式接口 lambda表达式/流式计算 动态代理
- Java中多态相关知识点
多态 1.多态概述 同一个对象在不同时刻表现出的不同形态 多态的前提和体现: 有继承/实现关系 有方法重写 有父类引用指向子类对象(Animal a = new Cat();) 2.多态中的成员访问特 ...
- Java中StringBuilder相关知识点
StringBuilder 1.StringBuilder概述 如果对字符串进行拼接操作,每次拼接都会构建一个新的String对象,既耗时又浪费空间,而且这种操作还不可避免.我们可以通过StringB ...
- 【Java基础】Java中你必须知道的知识点
目录 Java中面向对象的基础知识 1. 什么是面向对象 2. 三大基本特征和五项基本原则 3. Java的平台无关性 4. 值传递和引用传递 5. 方法重载和重写 6. 基本数据类型 7. 包装类 ...
- Java中容易遗漏的小知识点( 一 )(为了和小白一样马上要考试的兄弟准备的,希望小白和大家高过不挂)
笔者csdn博客同文地址:https://blog.csdn.net/weixin_45791445/article/details/106597515 我是小康小白,一个平平无奇的Java小白.热爱 ...
- 关于Java中的String类知识点小总结
Java中的String类知识点 前言 在 Java 中字符串属于对象,Java 提供了 String 类来创建和操作字符串. 如何创建字符串 最简单的方式 String str = "he ...
- Java语言中的这些知识点有没有用过,工作中有没有入过这些坑?
在Java语言中,有一些相对生僻的知识,平时用的机会可能不是很多,但如果不了解不掌握这些知识点的话,也可能会掉入陷阱之中,今天我们就来初步梳理一下: 1. goto是java语言中的关键字. &quo ...
随机推荐
- MFC之多字节和宽字节的总结
ANSI字符集 所支持的就是多字节的也叫窄字节,类型来说就对应char类型.Unicode字符集 也叫宽字符集 所支持的就是宽字符集,从类型上来说就是 wchar_t类型.gb2312是中国的编码, ...
- 鸿蒙HarmonyOS实战-Stage模型(线程模型)
前言 线程是计算机中的一种执行单元,是操作系统进行调度的最小单位.它是进程中的实际运行单位,每个进程可以包含多个线程.线程可以理解为进程中的一个执行流,它独立运行,拥有独立的栈和寄存器,但共享进程的资 ...
- react组件通信 父组件与子组件互相通信
父组件将自己的状态传递给子组件,子组件当做属性来接收,当父组件更改自己状态的时候,子组件接收到的属性就会发生改变 父组件利用ref对子组件做标记,通过调用子组件的方法以更改子组件的状态,也可以调用子组 ...
- 笔记本重装系统后重装OFFICE(预装的,赠送的)
笔记本重装系统后重装OFFICE(预装的,赠送的) 1.首先用edge打开bing搜索微软账号,谷歌浏览器也行就是登录微软账号多了一步 2.进去后点击服务和订阅那一栏,然后可以看到自己已购买的产品.再 ...
- 服务器安装mysql
数据库连接操作 修改root的hostupdate user set host='%' where user='root' and host ="127.0.0.1"flush p ...
- mybatis执行insert语句后,返回当前插入数据主键的方法 keyProperty区分大小写
mybatis执行insert语句后,返回当前插入数据主键的方法 keyProperty区分大小写 #这样查询没有返回主键值 <insert id="addLog" useG ...
- CentOS7学习笔记(三) 用户和用户组管理
用户管理 Linux中root用户是权限最大的用户,一般情况下只有服务器管理员拥有root用户的使用权,而我们会使用其他用户来连接Linux 创建用户的命令 创建用户的命令是useradd name, ...
- 【踩坑】.NET 8.0 自定义IExceptionHandler不生效
中间件实现异常处理 在ASP.NET Core里,我们可以使用中间件(Middleware)实现全局的异常处理. 如内置的异常处理中间件 UseExceptionHandler app.UseExce ...
- 淘宝二面:千万级数据中如何用Redis维护热点数据"?
MySQL里有千万条数据,但是Redis中只存10万的数据,如何保证redis中的数据都是热点数据? 我是小宋, 一个只熬夜但不秃头的Java程序员.关注我,带你轻松过面试.提升简历亮点(14个dem ...
- 从0到1:CTFer成长之路网上平台的使用以及docker环境配置
1.首先安装docker(这里在kali里演示) sudo su #以root身份运行 apt install docker.io #安装docker systemctl start docker # ...