一、使用this调用成员变量和成员函数
看下面代码:
Dog.java:
public class Dog {
void xx(){
System.out.println (this.name+this.age+"岁了");
}
String name;
int age;
}
DogTest.java:
class DogTest{
public static void main (String[] args) {
Dog dog1 = new Dog();
Dog dog2 = new Dog();
dog1.name = "来福";
dog1.age = 3;
dog2.age= 2;
dog2.name = "旺财";
dog1.xx();
dog2.xx();
}
}
输出结果:
来福3岁了
旺财2岁了
当类中存在成员变量和参数列表时,若不加this关键字,则系统不知道该输出成员变量的name还是参数列表的name。
如下例子:
Dog.java:
public class Dog {
String name;
int age;
void xx(String name,int age){
System.out.println (name+age+"岁了");
}
}
DogTest.java:
class DogTest{
public static void main (String[] args) {
Dog dog1 = new Dog();
Dog dog2 = new Dog();
dog1.name = "来福";
dog1.age = 3;
dog2.age= 2;
dog2.name = "旺财";
dog1.xx("来福来福",5);
dog2.xx("旺财旺财",6);
}
}
输出:
来福来福5岁了
旺财旺财6岁了
解析:当类中存在成员变量和参数列表时,若没有this关键字,则系统会以为当前打印的name是参数列表里的name。
二、使用this调用构造函数
例子:
Dog.java:
public class Dog {
String name;
int age;
String color;
Dog(){
}
Dog(String name,int age){
/**
*下面的参数都是赋值给成员变量的
**/
this.name = name;
this.age = age;
}
Dog(String name,int age,String color){
/**
*这里体现了this的另外一个用途:调用同一个类当中另外一个构造函数
*至于调用哪一个构造函数,就根据this后面的参数类型和个数来决定
**/
//这条语句必须放在第一
this(name,age);
this.color = color;
}
void xx(){
System.out.println (color+"的"+name+age+"岁了");
}
}
DogTest.java:
class DogTest{
public static void main (String[] args) {
Dog dog1 = new Dog("旺财",2,"黄色");
Dog dog2 = new Dog("来福",3,"黑色");
dog1.xx();
dog2.xx();
}
}
输出:
黄色的旺财2岁了
黑色的来福3岁
解析:在Dog.java中.定义了3个构造函数,this关键字可调用同一类中的另外一个构造函数.若想同时调用两个构造函数,则
public class Dog {
String name;
int age;
String color;
Dog(){
}
Dog(String name,int age){
this();
this.name = name;
this.age = age;
}
Dog(String name,int age,String color){
this(name,age);
this.color = color;
}
void xx(){
System.out.println (color+"的"+name+age+"岁了");
}
}
因为this();和this(name,age);都必须放在第一。
分享到:
相关推荐
23.this关键字.zip23.this关键字.zip23.this关键字.zip23.this关键字.zip23.this关键字.zip23.this关键字.zip23.this关键字.zip23.this关键字.zip23.this关键字.zip23.this关键字.zip23.this关键字.zip23.this关键字...
### ASP.NET中的this关键字 在ASP.NET开发过程中,`this`关键字是一个非常重要的概念,它在类的方法或构造函数中有着特殊的意义与用途。本文将详细介绍`this`关键字的用法及其背后的原理。 #### `this`关键字概述 ...
本课程“MLDN魔乐JAVA_09深入引用、this关键字、对象比较”将带你深入探讨这些核心概念。 首先,让我们来讨论“引用”。在Java中,变量可以分为基本类型和引用类型。引用类型变量实际上存储的是对象在内存中的地址...
在Java编程语言中,`this`关键字是一个非常重要的概念,它在程序的内存管理中扮演着关键角色。本文将深入探讨`this`关键字在Java程序中的应用,以及它如何与内存分配相关联。 首先,`this`关键字在Java中主要表示...
【标题】: "this关键字共2页.pdf.zip" 指的是一份关于Java编程语言中的关键字"this"的文档,可能包含两页详细讲解。这个压缩文件很可能提供了"this"关键字的基础概念、用法以及在实际编程中的应用示例。 【描述】: ...
在 Java 编程语言中,`this` 关键字是一个非常重要的概念,它用来引用当前对象的实例。本文将深入探讨 `this` 关键字的三种主要用途,并通过实例代码来解析其工作原理。 首先,`this` 关键字的基本含义是引用当前...
在JavaScript编程语言中,`this`关键字是一个至关重要的概念,它常常引发初学者的困惑,因为它的值在不同的上下文中可能会有所不同。`this`关键字主要用来引用对象的上下文,或者说是当前执行环境中的对象。在本文中...
### Java零基础-this关键字 #### 内容概要 本文主要介绍了Java编程语言中的`this`关键字及其在不同场景下的应用。通过本文的学习,初学者能够深入理解`this`关键字的作用,掌握其在实例方法、构造方法及内部类中的...
### Java软件开发实战:Java基础与案例开发详解之this关键字 #### 一、this关键字概述 在Java编程中,`this`关键字是一个非常重要且实用的概念。`this`关键字主要用于引用当前对象实例,使得开发者能够在方法内部...
1. **this关键字的含义** `this`关键字在Delphi中代表了正在执行方法的那个对象实例。当在一个类的方法内,我们需要引用到当前对象的属性或方法时,`this`就起到了指针的作用,指向调用该方法的对象实例。通过`this...
JavaScript中的`this`关键字是编程过程中经常会遇到的一个关键概念,尤其在面向对象编程中起着至关重要的作用。`this`的值取决于它被调用时的上下文,而不是定义时的位置,这使得它有时会显得有些复杂。在这个深入...
"一步一步学JAVA(第四课 方法、值传递、this关键字)" 本资源主要介绍了Java语言中的方法、值传递和this关键字的使用。通过实例代码和详细的解释,读者可以了解Java方法的声明和调用方式、值传递的机制和this关键字...
最基本的程序,适用于初学者!我是在做第一个项目中写的这几个小的demo,供和我一样刚入门的人学习
### Java中的this关键字详解 #### 一、概述 在Java编程语言中,`this`关键字是一种非常实用且灵活的关键字,它主要用于指代当前对象。`this`可以在类的内部被使用,帮助开发者清晰地表达代码逻辑,尤其是在解决...
1. this关键字的含义: "this"关键字在Java中代表当前对象的引用。在方法或构造器内部,当需要区分局部变量与成员变量,或者明确表示当前对象时,"this"就显得非常有用。它始终指向调用该方法或构造器的对象实例。 ...
// 使用this关键字区分实例变量和构造函数参数 this.rollno = rollno; this.name = name; this.fee = fee; } void display() { System.out.println(rollno + " " + name + " " + fee); } } ``` 2. 调用...
深入理解Java中this关键字的使用 this关键字是Java中一个非常重要的关键字,它主要用于表示当前对象的引用,通过this关键字可以访问当前对象的成员变量和成员方法。在Java中,this关键字有多种用法,以下我们将详细...
### 类和对象,this关键字和构造方法 #### 一、类和对象的概念 在面向对象编程(OOP)中,“类”与“对象”是最基本也是最重要的概念。 1. **类**: - 类是一种抽象的数据类型,用来描述具有相同属性和行为的...
Java this 关键字的使用方法详解 Java this 关键字是 Java 语言中一种特殊的引用变量,用于指代当前对象的引用。this 关键字的使用方法可以分为四种:构造方法中的 this、非构造方法中的 this、继承关系下的 this ...