Java学习个人备忘录之构造函数&this
构造函数
概念:构建创造对象时调用的函数。
作用:可以给对象进行初始化,创建对象都必须要通过构造函数初始化。
一个类中如果没有定义过构造函数,那么该类中会有一个默认的空参数构造函数.
如果在类中定义了指定的构造函数,那么类中默认构造函数就没有了.
构造函数可以直接调用一般函数,但是一般函数不能直接调用构造函数,如果想调用,就要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;
else
return 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);
}
}
Java学习个人备忘录之构造函数&this的更多相关文章
- java学习面向对象之父子构造函数初始化
在之前讲到java面向对象继承的时候,我们只讲到了两个比较重要的知识点,一个是父子类当中有同名的成员变量,这个时候,我们引入了super这个关键字来区分这两个同名成员变量,除此之外,我们还讲到了父子同 ...
- Java学习个人备忘录之多线程
进程:正在进行中的程序(直译). 线程:就是进程中一个负责程序执行的控制单元(执行路径) 一个进程中可以有多个执行路径,称之为多线程. 一个进程中至少要有一个线程. 开启多个线程是为了同时运行多部分代 ...
- Java学习个人备忘录之继承
继承的好处1. 提高了代码的复用性.2. 让类与类之间产生了关系,给第三个特征多态提供了前提. java中支持单继承,不直接支持多继承,但对C++中的多继承机制进行改良.java支持多层继承. C继承 ...
- Java学习个人备忘录之文档注释
文档注释 单行注释用 // 多行注释有两种,第一种是 /* 内容 */,第二种是/** 内容 */. 这两种多行注释的区别是/** 内容 */这种注释可以生成一个该文件的注释文档,下面是演示代码. A ...
- Java学习个人备忘录之数组工具类
下面主要讲解一个针对数组操作的工具类. a.java -- 工具类文件 //按理来说要先编译本文件, 然后再编译主函数 class ArrayTool { /* 获取整型数组的最大值 */ publi ...
- Java学习个人备忘录之关键字static
被static标记的东西会放在内存中被共享的,对象用到时,就会来取的. class Person { String name; //成员变量,实例变量 static String country = ...
- Java学习个人备忘录之线程间的通信
线程间通讯多个线程在处理同一资源,但是任务却不同. class Resource { String name; String sex; } //输入 class Input implements Ru ...
- Java学习个人备忘录之异常
概述 异常:是在运行时期发生的不正常情况. 在java中用类的形式对不正常情况进行了描述和封装对象. 描述不正常的情况的类,就称为异常类. 以前正常流程代码和问题处理代码相结合,现在将正常流程代码和问 ...
- Java学习个人备忘录之接口
abstract class AbsDemo { abstract void show1(); abstract void show2(); } 当一个抽象类中的方法都是抽象的时候,这时可以将该抽象类 ...
随机推荐
- Filebeat使用模块收集日志
1.先决条件 在运行Filebeat模块之前: 安装并配置Elastic stack 完成Filebeat的安装 检查Elasticsearch和Kibana是否正在运行,以及Elasticsearc ...
- Linux每日一命令:【00】总纲
Linux每日一命令更新频率为每周5篇. 文章结构如下: 简介 语法 选项 参数 常用实例 实用技巧(可选) 参考文档 文章目录如下: 2018-02-19 20:15 -- Linux每日一命令:[ ...
- jQuery基本toggle() toggleClass() 使用
今天来学习一下jQuery的基本函数的使用,很简单. 首先写一个button做控制按钮,然后写一个div用按钮控制idv做动画,从而测试JQuery的动画函数 <head> <met ...
- Flask之Flask实例有哪些参数
常用的参数应用实例 from flask import Flask, render_template, url_for, session, request, redirect app = Flask( ...
- 使用Screen管理远程会话
在本地开发时,经常需要使用远程连接到Linux服务器,一开始我自己都是有几个远程就开几个SSH窗口,这种方法很原始很直接,但每次都受够了密码输入,即使用了SSH免密码登录,也会觉得每次输入SSH的 ...
- 分享一个强大的makedown编辑器
Yosoro 官网地址 https://yosoro.coolecho.net/ 很强大,支持直接粘贴图片,是直接上传到github仓库. 可直接导出md,html,pdf格式,特别方便 找了好几天的 ...
- C语言实现左旋字符串
#include<stdio.h> #include<stdlib.h> #include<string.h> void left_rotate(char *str ...
- Docker入门系列02
上篇用一个简单的示例,简单的介绍了 Dockerfile 的配置及其相关的命令.这一篇会在上篇的示例程序里,继续添加新代码及如何将单元测试也放入 Image 建立过程内. 首先,我们需要建一个新的类库 ...
- Fibonacci递归以及数组实现
说起Fibonacci数列,首先想到的就是递归算法了,这也是帮助理解递归算法比较经典的题目实现如下: public static int Fibonacci(int n){ if (n == 0 ...
- NOI2002银河英雄传说-带权并查集
[NOI2002]银河英雄传说-带权并查集 luogu P1196 题目描述 Description: 公元五八○一年,地球居民迁至金牛座α第二行星,在那里发表银河联邦创立宣言,同年改元为宇宙历元年, ...