面向对象(this关键字)
package com_package2;
public class Person3 {
private int age;
private String name;
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
Person3()
{
System.out.println("hahahaa");
}
Person3(String n,int a)
{
name = n;
age = a;
}
Person3(String n)
{
name = n;
}
Person3(int a)
{
age = a;
}
public void speak()
{
System.out.println("name = "+name+" "+"age="+age);
}
}
package com_package2;
public class Person3Demo {
public static void main(String[]args)
{
Person3 p = new Person3();
p.speak();
Person3 p1 = new Person3("hejinjin",23);
p1.speak();
Person3 p2 = new Person3("hejinjin");
p2.speak();
Person3 p3 = new Person3(23);
p3.speak();
show();
}
public static void show()
{
System.out.println("haha");
}
}
hahahaa
name = null age=0
name = hejinjin age=23
name = hejinjin age=0
name = null age=23
haha
改成this关键字后:
package com_package2;
public class Person3 {
private int age;
private String name;
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
Person3()
{
System.out.println("hahahaa");
}
Person3(String name,int age)
{
this.name = name;
this.age = age;
}
Person3(String name)
{
this.name = name;
}
Person3(int age)
{
this.age = age;
}
public void speak()
{
System.out.println("name = "+this.name+" "+"age="+this.age);
}
}
注意this关键字的格式:this.类中的属性 = 参数中含有的变量
当成员变量和局部变量同名的时候,为了区分,可以使用一个关键字来完成。关键字:this
this:代表的是一个对象,哪个对象调用this所在的函数,this就代表哪个对象,this就是当前对象的一个引用
this什么用:当定义功能的时候,功能内部使用到了调用该功能的对象,这是就用this来表示
this的表现形式一:当局部变量和成员变量同名的时候,可以用this来区分
this的表现形式二:构造函数之间的调用可以使用this关键字,后面跟上小括号,指定其具体的实参即可明确要调用的构造函数
用this关键字进行一般函数调用一般函数:
package com_package2;
public class Person3 {
private int age;
private String name;
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
Person3()
{
System.out.println("hahahaa");
}
Person3(String name,int age)
{ this(name);
this.name = name;
this.age = age;
}
Person3(String n)
{
this.name = name;
}
Person3(int age)
{
this.age = age;
}
public void speak()
{
System.out.println("name = "+this.name+" "+"age="+this.age);
}
public void show()
{
this.speak();
}
}
package com_package2;
public class Person3Demo {
public static void main(String[]args)
{
Person3 p = new Person3();
p.speak();
Person3 p1 = new Person3("hejinjin",23);
p1.speak();
Person3 p2 = new Person3("hejinjin");
p2.speak();
Person3 p3 = new Person3(23);
p3.speak();
p1.show();
}
}
利用this关键字进行构造函数和构造函数之间的调用:
package com_package2;
public class Person3 {
private int age;
private String name;
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
Person3()
{
System.out.println("hahahaa");
}
Person3(String name,int age)
{ // this();
this.name = name;
this.age = age;
}
Person3(String name)
{
//this();
this.name = name;
}
Person3(int age)
{
this("hejinjin",342);
this.age = age;
}
public void speak()
{
System.out.println("name = "+this.name+" "+"age="+this.age);
}
public void show()
{
this.speak();
}
}
package com_package2;
public class Person3Demo {
public static void main(String[]args)
{
Person3 p = new Person3();
p.speak();
Person3 p1 = new Person3("hejinjin",23);
p1.speak();
Person3 p2 = new Person3("hejinjin");
p2.speak();
Person3 p3 = new Person3(238);
p3.speak();
p1.show();
}
}
hahahaa
name = null age=0
name = hejinjin age=23
name = hejinjin age=0
name = hejinjin age=238
name = hejinjin age=23
特殊情况:注意:调用本类中的构造函数的this语句必须定义在构造函数的第一行,因为初始化动作要先完成
面向对象(this关键字)的更多相关文章
- JAVA面向对象-----final关键字
JAVA面向对象-–final关键字 1:定义静态方法求圆的面积 2:定义静态方法求圆的周长 3:发现方法中有重复的代码,就是PI,圆周率. 1:如果需要提高计算精度,就需要修改每个方法中圆周率. 4 ...
- JAVA面向对象-----super关键字
JAVA面向对象-–super关键字 1:定义Father(父类)类 1:成员变量int x=1; 2:构造方法无参的和有参的,有输出语句 2:定义Son类extends Father类 1:成员变量 ...
- Java面向对象-static关键字、静态方法与普通方法、静态成员变量
Java面向对象-static关键字.静态方法与普通方法 static关键字的基本作用:方便在没有创建对象的情况下来进行调用(方法/变量). 很显然,被static关键字修饰的方法或者变量不需要依赖于 ...
- 面向对象this关键字和概述和应用
面向对象this关键字和概述和应用 package thisdemo; /** * 面向对象this关键字和概述和应用 * */ //定义老师类 class Teacher { private Str ...
- 10 面向对象(package关键字的概述及作用)
10.01_面向对象(package关键字的概述及作用) A:为什么要有包 *开发时有很多类,如果放在一个文件夹中不方便管理,而且容易重复 将字节码(.class)进行分类存放 包其实就是文件夹 B: ...
- 面向对象-static关键字实战案例
面向对象-static关键字实战案例 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.static关键字概述 1>.static的功能 static关键字用于修饰成员变量和 ...
- Java基础语法(11)-面向对象之关键字
title: Java基础语法(11)-面向对象之关键字 blog: CSDN data: Java学习路线及视频 1.this this是什么 它在方法内部使用,即这个方法所属对象的引用: clas ...
- PHP中面向对象的关键字
php面向对象中常用的关键字有final.static.const (1)final: 1,final不能修饰成员属性 2,final只能修饰类和方法 作用: 使用final修饰的类不能被子类继承 使 ...
- javascript 面向对象 new 关键字 原型链 构造函数
JavaScript面向对象JavaScript 语言使用构造函数(constructor)作为对象的模板.所谓"构造函数",就是专门用来生成实例对象的函数.它就是对象的模板,描述 ...
- Java面向对象重要关键字
面向对象过程接触的重要关键字:extends super this final static extends 关键字用作继承功能,可以申明一个类是从另外一个类继承而来的,一般形式如下 ...
随机推荐
- JDK设置Encoding编码格式
执行JAVA程序报错内容如下: java.lang.IllegalStateException: The Java Virtual Machine has not been configured to ...
- 【BZOJ4281】[ONTAK2015]Związek Harcerstwa Bajtockiego LCA
[BZOJ4281][ONTAK2015]Związek Harcerstwa Bajtockiego Description 给定一棵有n个点的无根树,相邻的点之间的距离为1,一开始你位于m点.之后 ...
- 【BZOJ4619/3709】[Wf2016]Swap Space/[PA2014]Bohater 贪心
[BZOJ4619][Wf2016]Swap Space Description 你有许多电脑,它们的硬盘用不同的文件系统储存数据.你想要通过格式化来统一文件系统.格式化硬盘可能使它的容量发生变化.为 ...
- go colly proxy 代理ip 动态 ip
package main import ( "fmt" "github.com/gocolly/colly" "github.com/gocolly/ ...
- ast.literal_eval(jsonStr) json格式字符串转dict 2种方式
json.loads(jsonStr, encoding='utf-8')import ast ast.literal_eval(jsonStr)
- 查看SqlServer安装的log文件
SqlServer安装时产生的log被保存在这个目录下: "%programfiles%\Microsoft SQL Server\[SQL_VERSION]\Setup Bootstrap ...
- 链表的C++实现
有的时候,处于内存中的数据并非连续的.那么这时候.我们就须要在数据结构中加入一个属性.这个属性会记录以下一个数据的地址.有了这个地址之后.全部的数据就像一条链子一样串起来了,那么这个地址属性就起到 ...
- 使用nginx+nginx-rtmp-module+ffmpeg搭建流媒体服务器
参考: 1,使用nginx+nginx-rtmp-module+ffmpeg搭建流媒体服务器笔记(一)http://blog.csdn.net/xdwyyan/article/details/4319 ...
- windows下安装Qt
1.Linux下安装Qt与MySQL相对来说比较容易,在这里我就不多加介绍. 接下来主要介绍windows下安装Qt与MySQL. 2.在windows,我安装QtCreator, 使用的是qt-wi ...
- mysql从删库到跑了
常用的数据库有哪些? oralce,sqlserver,mysql,db2 有钱就用oracle吧 oracle和mysql的区别:https://zhidao.baidu.com/question/ ...