构造函数

概念:构建创造对象时调用的函数。

作用:可以给对象进行初始化,创建对象都必须要通过构造函数初始化。

一个类中如果没有定义过构造函数,那么该类中会有一个默认的空参数构造函数.
如果在类中定义了指定的构造函数,那么类中默认构造函数就没有了.

构造函数可以直接调用一般函数,但是一般函数不能直接调用构造函数,如果想调用,就要new一下。

class Person
{private String name;private int age;//定义一个Person类的构造函数Person()  //构造函数,而且是空参数的,构造函数的名和类名相同{System.out.println("person run");}public void speak(){System.out.println(name+":"+age);}
}class ConsDemo
{public static void main(String[] args){Person p = new Person(); //这里创建Person对象后,自动调用了Person(),所以这时会打印出person run}
}

this的应用

当成员变量和局部变量重名时,可以用关键字this来区分。

this:代表对象. 代表哪个对象呢? 当前对象。
        this就是所在函数所属对象的引用。
        简单说:哪个对象调用了this所在的函数,this就代表哪个对象。

class Person
{private String name;private int age;Person(String name){this.name = name;  //当局部变量和成员变量重名时,成员变量要加上this.}public void speak(){System.out.println(name);}
}
class Demo
{Person p = new Person("哈哈");p.speak(); //打印出 -- 哈哈
}

this的第二个用法
构造函数中调用构造函数。
注意:只能定义在构造函数的第一行,因为初始化动作要先执行。

class Person
{private String name;private int age;Person(String name){this.name = name;}Person(String name,int age){this(name); //调用上面那个构造函数,给name赋值this.age = age;}public void speak(){System.out.println(name+":"+age);}
}
class ThisDemo
{public static void main(String[] args){Person p = new Person("旺财",30);p.speak();Person p1 = new Person("小强");p1.speak();}
}

this关键字的应用实例

class Person
{private String name;private int age;Person(String name){this.name = name;}Person(String name,int age){this(name); //调用上面那个构造函数,给name赋值this.age = age;}public void speak(){System.out.println(name+":"+age);}//判断是否是同龄人public boolean compare(Person p){/*if(this.age==p.age)return true;elsereturn false;*/return this.age==p.age;}
}
class ThisDemo
{public static void main(String[] args){Person p1 = new Person("aa",30);Person p2 = new Person("zz",12);p1.compare(p2);}
}

转载于:https://www.cnblogs.com/vector121/p/7460303.html

Java学习个人备忘录之构造函数this相关推荐

  1. Java学习个人备忘录之线程间的通信

    线程间通讯 多个线程在处理同一资源,但是任务却不同. class Resource { String name; String sex; } //输入 class Input implements R ...

  2. Java学习个人备忘录之接口

    abstract class AbsDemo {abstract void show1();abstract void show2(); } 当一个抽象类中的方法都是抽象的时候,这时可以将该抽象类用另 ...

  3. java学习笔记13--反射机制与动态代理

    本文地址:http://www.cnblogs.com/archimedes/p/java-study-note13.html,转载请注明源地址. Java的反射机制 在Java运行时环境中,对于任意 ...

  4. Java学习笔记--StringTokenizer的使用

    2019独角兽企业重金招聘Python工程师标准>>> Java Tips: 使用Pattern.split替代String.split String.split方法很常用,用于切割 ...

  5. [Java]学习Java(1)运算符语句类

    [Java]学习Java(1)运算符&语句&类 一.运算符&语句 1.相等运算符"==" (1)基本类型时值相等就为true (2)对象比较时比较其引用地址 ...

  6. java学习笔记14--多线程编程基础1

    本文地址:http://www.cnblogs.com/archimedes/p/java-study-note14.html,转载请注明源地址. 多线程编程基础 多进程 一个独立程序的每一次运行称为 ...

  7. java学习笔记7--抽象类与抽象方法

    接着前面的学习: java学习笔记6--类的继承.Object类 java学习笔记5--类的方法 java学习笔记4--类与对象的基本概念(2) java学习笔记3--类与对象的基本概念(1) jav ...

  8. java关于泛型的实验代码_[ Java学习 ] 泛型类的应用实验

    成文原因: 这篇文章是我这周所做的 Java 实验题的一个小总结. 这次实验让我深刻赞同了我们 Java 老师在这节实验课前告诉我们的话: 最重要的是把问题想明白,它要怎么拆分成几个类,每个类里究竟需 ...

  9. 设计模式学习笔记——备忘录(Memento)模式

    设计模式学习笔记--备忘录(Memento)模式 @(设计模式)[设计模式, 备忘录模式, memento] 设计模式学习笔记备忘录Memento模式 基本介绍 备忘录案例 类图 实现代码 Memen ...

最新文章

  1. 【BZOJ1015】【JSOI2008】星球大战 并查集
  2. 【六一儿童节】回忆一下“孩子们的游戏”!(码农版)
  3. 从本地上传项目到 github 以及从github 下载项目到本地环境
  4. 利用software center在线更新windows 10 1909失败
  5. 用ProGet搭建本地私有NuGet仓库
  6. 自己的部分小软件合计 2000 - 2013
  7. 使用nginx时候html页面乱码解决办法
  8. 英语计算机简历模板,计算机研究生英文简历模板
  9. python pdb模块_Biopython PDB模块
  10. 离散数学2:命题逻辑的推理
  11. 人睡眠时做恶梦以及梦魇或鬼压身的原因
  12. 面试被问到项目架构怎么说呢?
  13. mysql数据库备份还原的几种方式
  14. 安装BiocManager显示Warning in install.packages : package ‘BiocManager’ is not available for this version
  15. c++ 将行列式化为上三角行列式,并求值。
  16. Android版优酷网闪亮登场
  17. 阿里云后台部署全过程-1-云服务申请与配置
  18. js前端处理过滤特殊字符以及输入法特殊表情符号emoji的正则方法,解决数据库报错问题。
  19. Pytorch安装(Anaconda配置虚拟环境)(cpu版)
  20. 计算机ntc中国教育考试网,中国教育考试网ntcecf1.neea.edu.cn-2018河北教师资格证成绩查询网址...

热门文章

  1. python概念-Socket到底有多骚
  2. MVC4 Filter 验证客户端访问类型(移动端、PC端)
  3. mysql复制学习二 安装及首次复制配置
  4. 父窗体中弹出新窗体,然后获取弹出窗体的返回值。
  5. 中考英语听说计算机考试满分,中考英语听说机考在即,这些考生可免试计满分...
  6. python 多核并行计算_嫌Python太慢?并行运算Process Pools三行代码给你4倍提速!
  7. MySQL线上备份与恢复方案
  8. php把字符串变成多组,php把字符串变成数组(有分隔符)
  9. (29)System Verilog设计SPI接收
  10. Vivado时序报告名词解释