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. 总是会先访问完父类的构造方法在访问子类里面的构造方法;

总结

以上所述是小编给大家介绍的Java中的构造方法this、super的用法,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对脚本之家网站的支持!

java构造方法 this_Java中的构造方法this、super的用法详解相关推荐

  1. java return返回值_java中关于return返回值的用法详解

    我们输入一个条件时,系统就会对这个条件进行判断,然后给出一个返回时的结论,我们把这个结果看做是返回值.在java里可以使用return语句来进行返回,从字面意思就能很好的理解它的用法了.下面我们就re ...

  2. oracle中的exists 和 not exists 用法详解

    from:http://blog.sina.com.cn/s/blog_601d1ce30100cyrb.html oracle中的exists 和 not exists 用法详解 (2009-05- ...

  3. python多个strip_python 格式化多个Python3中strip()、lstrip()、rstrip()用法详解

    Python中有三个去除头尾字符.空白符的函数,它们依次为: strip: 用来去除头尾字符.空白符(包括n.r.t.' ',即:换行.回车.制表符.空格) lstrip:用来去除开头字符.空白符(包 ...

  4. linux cp -r 参数,Linux系统中cp命令的参数及用法详解

    Linux系统中cp命令主要是用来复制文件或者目录.下面由学习啦小编为大家整理了Linux系统中cp命令的参数及用法详解的相关知识,希望对大家有帮助! Linux系统中cp命令的参数及用法详解:参数说 ...

  5. linux 移动剪切命令,Linux中vi的复制命令的用法详解

    在Linux系统中,使用VI编辑的时候经常用到的操作就是复制粘贴,那么下面由学习啦小编为大家整理了linux中vi的复制命令的用法详解的相关知识,希望对大家有帮助! Linux中vi的复制命令的用法详 ...

  6. python中rstrip用法_浅谈Python3中strip()、lstrip()、rstrip()用法详解

    简单来说,三种方法是为了删除字符串中不同位置的指定字符.其中,strip()用于去除字符串的首尾字符,同理,lstrip()用于去除左边的字符,rstrip()用于去除右边的字符 Python中有三个 ...

  7. linux中替换命令详解,linux中sed命令字符串替换的用法详解

    Linux系统中sed命令可以将字符串批量替换,省去了很多麻烦,下面由学习啦小编为大家整理了linux系统中sed命令字符串替换的用法详解,希望对大家有帮助! linux中sed命令字符串替换的用法详 ...

  8. python中isinstance怎么用_pythonisinstance函数用法详解

    这篇文章主要介绍了python isinstance函数用法详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 isinstance() 函数来判断 ...

  9. mysql中函数mid_MySQL MID()函数的用法详解(代码示例)

    在MySQL中,MID()函数返回从指定位置开始的子字符串. MID()和SUBSTR()都是SUBSTRING()的同义词. 基本语法是这样的:MID(str,pos,len) 这里,str是字符串 ...

  10. matlab中采样函数,matlab采样相关函数用法详解

    matlab采样函数(降采样,过采样,减采样函数)用法详解 dyaddown 功能:对时间序列进行二元采样,每隔一个元素提取一个元素,得到一个降采样时间序列. 格式: 1.y = dyaddown(x ...

最新文章

  1. Mysql中文乱码问题完美解决方案
  2. Nginx面试!mysql时间类型以及获取当前时间,干货满满
  3. python学生成绩管理程序设计总框图_学生成绩管理程序设计报告
  4. java自定义注解实现日志功能
  5. visionpro定位不跟随图像_医海探弋,TMS定位技术的发展分析
  6. linux kvm虚拟化ha,基于RHEL6.3-KVM三节点虚拟机命令行搭建HA
  7. 汇编 一星题目字符串合集:输入字符,操作,在屏幕上显示
  8. 证书格式简介及不同格式之间的转换方式
  9. python做app接口测试_一种APP接口自动化测试方法与流程
  10. 简述计算机总线概念内涵,总线的概念及其它相关知识细解
  11. C语言str函数系列
  12. 淘宝店铺运营,店铺访客增加但是浏览量减少这是为什么,应该怎样解决?
  13. VB 清除数组中全部元素的值
  14. Android中关于涉及到金钱计算方面的工具类!
  15. 2004年11月网络工程师级试题
  16. 大数据有哪些存储方式?
  17. “消失”的Android技术博主们现在如何!Android开发者前路在哪?
  18. win10 microsoft edge 浏览器收藏夹位置
  19. 数学建模用python好吗_用 Python 做数学建模
  20. 批处理 bat 改文件后缀名

热门文章

  1. Python-OpenCV 处理图像(一):基本操作 cv2
  2. PostgreSQL数据目录深度揭秘
  3. 重磅!容器集群监控利器 阿里云Prometheus 正式免费公测
  4. 阿里云移动研发平台EMAS,是如何连续5年安全护航双11的?
  5. 与机器学习算法有关的数据结构
  6. 极狐(GitLab)宣布获数亿元A轮融资,将加速推动中国开源DevOps生态
  7. 因为一个跨域请求,我差点丢了饭碗
  8. Nutanix企业云助力嘉里大通提升核心竞争力
  9. IBM推出可加快响应跨云网络威胁的开放技术 业界首次实现跨安全工具和跨云的搜索威胁功能,无需移动数据
  10. 腾讯Blade Team发现云虚拟化平台逃逸漏洞 积极护航云生态安全