面向对象(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 关键字用作继承功能,可以申明一个类是从另外一个类继承而来的,一般形式如下 ...
随机推荐
- 【Python基础】之异常
一.常见异常 try: open('abc.txt','r') except FileNotFoundError: print('异常啦!') 输出结果: ======= 异常啦! 我们通过 open ...
- 目标检测之行人检测(Pedestrian Detection)---行人检测之简介0
一.论文 综述类的文章 [1]P.Dollar, C. Wojek,B. Schiele, et al. Pedestrian detection: an evaluation of the stat ...
- HDU 5338(ZZX and Permutations-用线段树贪心)
ZZX and Permutations Time Limit: 6000/3000 MS (Java/Others) Memory Limit: 131072/131072 K (Java/O ...
- Executors几种常用的线程池性能比较
java编程中,经常会利用Executors的newXXXThreasPool生成各种线程池,今天写了一小段代码,简单测试了下三种常用的线程池: import com.google.common.ut ...
- python 基础 1.5 python数据类型(二)--列表常用方法示例
#/usr/bin/python #coding=utf-8 #@Time :2017/10/12 23:30 #@Auther :liuzhenchuan #@File :列表.py lis ...
- rabbitmq 安装-单点
centos6.5 rabbitmq搭建 环境:centos6.5 192.168.9.41 安装rabbitmq需要先安装erlang.rabbitmq3.6版本需要erlang R16B03 ...
- String代码示例
package lianxi; public class lianxi0112 { public static void main(String[] args) { // TODO 自动生成的方法存根 ...
- 使用ab 进行并发压力测试
使用ab 进行并发压力测试 - 参与商 - 博客园 https://www.cnblogs.com/shenshangzz/p/8340640.html 使用ab 进行并发压力测试 ab全称为:a ...
- 【C语言天天练(十)】结构体
引言:数据常常以成组的形式存在.在C中,使用结构能够把不同类型的值存放在一起. 结构的声明有两种 1.struct SIMPLE{ int a; char b; float c; };然后用标签SIM ...
- matlab使用usb和gige 网口相机
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 辛苦原创所得,转载请注明出处 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ...