1、构造方法

定义:与类同名没有返回值的方法称为构造方法;

public class test1 {
private String name;
private int age;
public test1(){
}

}

上面的test1()是默认构造方法,即使没有定义java虚拟机在运行的时候也会自动生成,

当然如果定义了重载的构造方法便不会自动生成;

构造方法的作用有两点1.通过构造方法建立一个对象;2.通过构造方法可以快速的赋初值;

public class Main {
public static void main(String[] args) {
test1 t1=new test1();//new后面加上构造方法建立了一个对象
}
}

而如果类中有其它属性的话可以有构造方法的重载:

public test1(String name, int age) {
this.name = name;
this.age = age;
}

利用重载的构造方法可以很快速的给对象赋初值,特别是对于private的属性,如果用getter和setter很不方便;

public static void main(String[] args) {
test1 t1=new test1();
test1 t2=new test1("bob", 18);
System.out.println(t1);
System.out.println(t2);
}

输出结果:

test1 [name=null, age=0]
test1 [name=bob, age=18]

t1没有赋初值所有它里面的值是系统设置的初值;

t2利用有参的构造方法,直接给属性设置了初值,非常的方便,就不用setter方法来一个个设置值;

2. this

谁调用指向谁,是指向调用的对象;

举例说明:

在上面的test1 类中加上以下fly()方法:

public void fly(){
System.out.println(this.name+"会飞");//this指向调用的对象
}

在运行中调用:

public static void main(String[] args) {
test1 t1=new test1();
test1 t2=new test1("bob", 18);
t1.fly();//方法中的this指向t1
t2.fly();//方法中的this指向t2
// System.out.println(t1);
// System.out.println(t2);
}

结果如下:

null会飞
bob会飞

另外this还需要注意的一点是用在构造方法中:

public test1(String name, int age) {
this();//在运行构造方法进行属性赋值前是一定会先调用无参数的构造方法
this.name = name;
this.age = age;
}

当然构造方法调用主要看this(参数列表)看圆括号里面的参数列表和哪一个构造方法相同就执行哪一个构造方法;

2. super:指向父类,调用父类的属性和方法;

其实使用起来和this关键字差不多;

public test1(){
super();
}

上面的super(()调用的是父类的构造方法,如果没有继承父类的话,那么它的父类是指向object(所有类的超类);

使用:suiper关键字加“ . ”可以访问父类可以访问的属性和方法,一般用于区分被子类重写了的方法;

使用this(参数列表)和super(参数列表)的构造方法注意事项:

a.  只能够位于构造方法的第一行;

b. 不能同时出现在一个构造方法中;

c. 总是会先访问完父类的构造方法在访问子类里面的构造方法;

转载于:https://www.cnblogs.com/sw-123/p/9321124.html

java中的构造方法,this、super的用法相关推荐

  1. Java中this关键字和super关键字用法

    构造方法中的this关键字 构造方法是一个类的对象在通过new关键字创建时自动调用的,在程序中不能向调用其他方法一样通过方法名(也就是类名)来调用.但如果一个类有多个构造方法,可以在一个构造方法中通过 ...

  2. JAVA中的break[标签]continue[标签]用法

    原文:JAVA中的break[标签]continue[标签]用法 注意:JAVA中的标签必须放在循环之前,且中间不能有其他语句.例如:tag:for或while或do--while; 1.使用brea ...

  3. java中的构造方法与代码块

    一.构造方法 1.1.java中的构造方法跟普通方法有很大的区别: 构造方法的方法名跟类名相同 构造方法没有返回值类型,连void也没有,也不能用return返回值 每次创建一个对象,都会调用构造方法 ...

  4. java中的构造方法必须和类名相同,在Java中,关于构造方法,下列说法错误的是()A、构造方法的名称必须与类名相同B、构造方法可以...

    在Java中,关于构造方法,下列说法错误的是()A.构造方法的名称必须与类名相同B.构造方法可以 更多相关问题 [判断题]树立改革的紧迫感本身是个情绪上的问题.() [单选题]会较早出现周围循环衰竭的 ...

  5. java中Collections.sort() 排序函数的用法

    java中Collections.sort() 排序函数的用法: 用Collections.sort方法对list排序有两种方法 第一种是list中的对象实现Comparable接口,如下: /** ...

  6. 12 java中instanceof运算符的意义和用法

    java中instanceof运算符的意义和用法 instanceof运算符是用来在运行时指出对象是否是特定类的一个实例.instanceof通过返回一个布尔值来标识该对象是否为特定类或者它的子类的一 ...

  7. 详解JAVA中的构造方法

    目录 一.构造方法的概念 二.构造方法的特性 一.构造方法的概念 构造方法(也称为构造器)是一个特殊的成员方法,名字必须与类名相同,在创建对象时由编译器自动调用,并且在整个对象的生命周期内只调用一次. ...

  8. java中this.getclass()_详解java中this.getClass()和super.getClass()的实例

    详解java中this.getClass()和super.getClass()的实例 前言: 遇到this.getClass()和super.getClass()的返回值感到疑惑,经过探索豁然开朗. ...

  9. java中getclass_详解java中this.getClass()和super.getClass()的实例

    详解java中this.getClass()和super.getClass()的实例 前言: 遇到this.getClass()和super.getClass()的返回值感到疑惑,经过探索豁然开朗. ...

  10. [转载] java中50个关键字以及各自用法大全

    参考链接: Java中的默认数组值 关键字和保留字的区别 正确识别java语言的关键字(keyword)和保留字(reserved word)是十分重要的.Java的关键字对java的编译器有特殊的意 ...

最新文章

  1. Controller的要求
  2. 教您怎么从spring 官网下载参考文档
  3. webpack从零开始第2课: 配置文件
  4. 让容器跑得更快:CPU Burst 技术实践
  5. Kettle常用的配置文件
  6. python构建bp神经网络_鸢尾花分类(一个隐藏层)__1.数据集
  7. ffmpeg视频播放流程
  8. 达摩院自研数学规划求解器发布,最新技术将通过阿里云对外输出
  9. LeetCode路径问题
  10. java基础编程题库_JAVA基础编程练习题
  11. BP神经网络的预测模型
  12. HUSTOJ配置文件解释
  13. 2021年小目标检测最新研究综述
  14. 苹果PD20W快充方案缺货,芯片供应不足,怎么破局?
  15. Php将mp3转wav,mp3转wav格式转换器 mp3怎么转换成wav格式
  16. php 2个数组并集,php中数组的并集、交集和差集函数介绍_PHP教程
  17. c语言中ctod语句的作用,CTOD(c语言ctod函数)
  18. 《转贴》机器学习 机器视觉 图像处理 牛人牛站
  19. 【蓝桥杯】简单数论4——丢番图方程
  20. JVM进阶(十二)——JAVA 可视化分析工具

热门文章

  1. springweb拦截器
  2. 新建指令避开 Avalon 的 ms-duplex 的问题
  3. Stumpwm的编译安装
  4. 【zz】如何去理解 拓扑排序算法
  5. 【数据平台】python中文分词工具jieba
  6. 机器学习笔记(八)集成学习
  7. CentOS6.2部署qt开发环境
  8. 数据结构源码笔记(C语言):直接选择排序
  9. 通信经典书籍(转载)
  10. delphi 读取ini所有项_财务机器人真的会代替财务人员所有工作吗?