Java学习笔记---9.面向对象编程04-this关键字的使用
this关键字是Java语言里一个比较灵活而又复杂的语法,这里和String一样,也单独罗列出来做一节.
this关键字的使用环境:
1. 可以调用本类中的方法.
这个方法可以使类里面的一般方法, 也可以使构造函数.
对于一般方法的调用,之前就已经碰到过了,比较熟悉,直接用this.function()即可.
对于在构造函数中使用this关键字有需要注意的地方.在构造函数中,使用this()语句(注意this后带括号)调用的是无参的构造函数. 在构造函数中使用this()语句,this()语句必须放置在构造方法的首行, 且多个构造函数中必须至少留有一个入口,就是说至少要有一个未使用this()方法的构造函数.
这里举个例子:
view plaincopy to clipboardprint?
class Person
{
// 定义类"Person"的属性
String name;
int age;
//定义构造函数
public Person()
{
//this()语句必须放置在构造函数的首行,且多个构造函数必须留有一个入口
this("张三",23);
System.out.println("构造了一个新的对象!");
}
public Person(String name,int age)
{
//如果是由构造函数为属性赋值的话,最好也是使用getter和seter方法
this.name = name;
this.age = age;
}
public void print()
{
System.out.println("姓名是: "+name + ", 年龄是: "+age);
}
}
public class OODemo03
{
public static void main(String args[])
{
Person p = new Person();
p.print();
}
}
class Person
{
// 定义类"Person"的属性
String name;
int age;
//定义构造函数
public Person()
{
//this()语句必须放置在构造函数的首行,且多个构造函数必须留有一个入口
this("张三",23);
System.out.println("构造了一个新的对象!");
}
public Person(String name,int age)
{
//如果是由构造函数为属性赋值的话,最好也是使用getter和seter方法
this.name = name;
this.age = age;
}
public void print()
{
System.out.println("姓名是: "+name + ", 年龄是: "+age);
}
}
public class OODemo03
{
public static void main(String args[])
{
Person p = new Person();
p.print();
}
}
--------------------------------------------------------------------------------
2. 调用当前类中的属性
这个比第一种更常见,例如在上面的程序中, this.name = name; this.age = age 都是用过this关键字来调用当前类中的属性, 实例见上面代码中重载的构造函数.
--------------------------------------------------------------------------------
3. 可以表示当前对象
其实在第二种"调用当前类中的属性"一块中, 我们就可以把this当做是在表示当前的对象. 用this表示当前对象,谁调用了这个方法,则this就表示谁.
view plaincopy to clipboardprint?
class Person
{
// 谁操作了这个方法,则this就表示是谁
public void print()
{
System.out.println("this表示:"+this) ;
}
}
public class Demo08
{
public static void main(String args[])
{
Person p1 = new Person();
Person p2 = new Person();
p1.print() ;
System.out.println(p1) ;
System.out.println("-------------------------") ;
p2.print() ;
System.out.println(p2) ;
}
}
this关键字是Java语言里一个比较灵活而又复杂的语法,这里和String一样,也单独罗列出来做一节.
this关键字的使用环境:
1. 可以调用本类中的方法.
这个方法可以使类里面的一般方法, 也可以使构造函数.
对于一般方法的调用,之前就已经碰到过了,比较熟悉,直接用this.function()即可.
对于在构造函数中使用this关键字有需要注意的地方.在构造函数中,使用this()语句(注意this后带括号)调用的是无参的构造函数. 在构造函数中使用this()语句,this()语句必须放置在构造方法的首行, 且多个构造函数中必须至少留有一个入口,就是说至少要有一个未使用this()方法的构造函数.
这里举个例子:
view plaincopy to clipboardprint?
class Person
{
// 定义类"Person"的属性
String name;
int age;
//定义构造函数
public Person()
{
//this()语句必须放置在构造函数的首行,且多个构造函数必须留有一个入口
this("张三",23);
System.out.println("构造了一个新的对象!");
}
public Person(String name,int age)
{
//如果是由构造函数为属性赋值的话,最好也是使用getter和seter方法
this.name = name;
this.age = age;
}
public void print()
{
System.out.println("姓名是: "+name + ", 年龄是: "+age);
}
}
public class OODemo03
{
public static void main(String args[])
{
Person p = new Person();
p.print();
}
}
class Person
{
// 定义类"Person"的属性
String name;
int age;
//定义构造函数
public Person()
{
//this()语句必须放置在构造函数的首行,且多个构造函数必须留有一个入口
this("张三",23);
System.out.println("构造了一个新的对象!");
}
public Person(String name,int age)
{
//如果是由构造函数为属性赋值的话,最好也是使用getter和seter方法
this.name = name;
this.age = age;
}
public void print()
{
System.out.println("姓名是: "+name + ", 年龄是: "+age);
}
}
public class OODemo03
{
public static void main(String args[])
{
Person p = new Person();
p.print();
}
}
--------------------------------------------------------------------------------
2. 调用当前类中的属性
这个比第一种更常见,例如在上面的程序中, this.name = name; this.age = age 都是用过this关键字来调用当前类中的属性, 实例见上面代码中重载的构造函数.
--------------------------------------------------------------------------------
3. 可以表示当前对象
其实在第二种"调用当前类中的属性"一块中, 我们就可以把this当做是在表示当前的对象. 用this表示当前对象,谁调用了这个方法,则this就表示谁.
view plaincopy to clipboardprint?
class Person
{
// 谁操作了这个方法,则this就表示是谁
public void print()
{
System.out.println("this表示:"+this) ;
}
}
public class Demo08
{
public static void main(String args[])
{
Person p1 = new Person();
Person p2 = new Person();
p1.print() ;
System.out.println(p1) ;
System.out.println("-------------------------") ;
p2.print() ;
System.out.println(p2) ;
}
}
发表评论
-
Servlet
2010-08-20 11:28 4971.什么是Servlet? ... -
MyEclipse快捷键
2010-08-20 11:27 523存盘 Ctrl+s(肯定知道) 注释代码 Ctrl+/ 取 ... -
java面试题
2010-08-20 11:26 476第一,谈谈final, finally, finalize的区 ... -
Java学习笔记---16.面向对象编程11-Java多态性,instanceof及Object类
2010-08-20 11:26 691多态是一个之前一直搞不清楚的概念,通过这次笔记,对多态的概念及 ... -
Java学习笔记---15.面向对象编程10-Java中final关键字,抽象类与接口
2010-08-20 11:24 937抽象类与接口是Java中最重要部分之一,这里用较大的篇幅来做下 ... -
Java学习笔记---14.面向对象编程09-Java中重载与复写的区别、super与this的比较
2010-08-20 11:22 8211. 方法重载与方法复写的区别 区别 ... -
Java学习笔记---13.面向对象编程08-Java中继承的概念,子类实例化过程,super()及方法复写
2010-08-20 11:12 1002继承是OOP的三大特点之一. 这一节主要做一下继承的笔记. ... -
Java学习笔记---12.面向对象编程07-Java中的static关键字用法
2010-08-20 11:08 854static关键字应用点有3个: static变量(属性)的声 ... -
Java学习笔记---11.面向对象编程06-Java的内部类及对象数组
2010-08-20 11:04 8301. Java的内部类机制 所谓内部类,是指在一 ... -
java学习笔记---10.面向对象编程05-面向对象程序的设计步骤
2010-08-20 11:03 773这一部分需要注意一个原则, 熟练掌握OOP的程序设计方法. ... -
Java学习笔记---8.面向对象编程03-String类的重点应用
2010-08-20 10:59 696在String类这一部分很重要,分为三个问题来做笔 ... -
Java学习笔记---7.面向对象编程02-类的封装性以及构造方法
2010-08-20 10:57 7941. 类的封装特性: 类的封装性是指类 ... -
Java学习笔记---6.面向对象编程01-类对象的构建及对象的引用传递
2010-08-20 10:54 668Java学习笔记---6.面向对象编程01-类对象的构建及对象 ... -
Java学习笔记---5.Java数组和方法
2010-08-20 10:53 7191. 数组的声明语法 Java中数组的声明有两种形 ... -
Java学习笔记---4.Java的分支循环语句
2010-08-20 10:51 691switch的使用如下例: view plain ... -
Java学习笔记---3.运算符与表达式
2010-08-20 10:49 680这一部分需要再强调的东西不多,因为运算符表达式都是平时最常用的 ... -
Java学习笔记---2.Java标识符和基本数据类型
2010-08-20 10:48 930这一块里面,标识符比较简单,没有什么需要记录的东西. ... -
Java学习笔记---1.Java发展及JDK配置
2010-08-20 10:47 769Java的老东家是Sun公司(Sun的全名,Stanford ...
相关推荐
好啊好啊 抽象类与接口是Java中最重要部分之一,这里用较大的篇幅来做下这部分的笔记. 1. final关键字 在Java中, 可以使用final关键字修饰类、方法以及成员变量。 (1).final标记的类不能被继承; (2).final标记...
统计学习方法笔记-基于Python算法实现源码.zip 统计学习方法笔记-基于Python算法实现源码.zip 统计学习方法笔记-基于Python算法实现源码.zip 统计学习方法笔记-基于Python算法实现源码.zip 统计学习方法笔记-基于...
JAVA学习笔记-java学习笔记WORD样式.docx
设计模式学习笔记--Flyweight享元模式.docx设计模式学习笔记--Flyweight享元模式.docx设计模式学习笔记--Flyweight享元模式.docx设计模式学习笔记--Flyweight享元模式.docx设计模式学习笔记--Flyweight享元模式.docx
Python学习笔记--皮大庆,非常适合零基础入门。对应英文版本《How to think like a computer scientist》
该包中包括 linux 环境的安装包; 桌面管理工具 redis-desktop-manager ; 学习笔记; redis.conf 中文文档
学习笔记HTML-css-JS.zip学习笔记HTML-css-JS.zip学习笔记HTML-css-JS.zip 学习笔记HTML-css-JS.zip学习笔记HTML-css-JS.zip学习笔记HTML-css-JS.zip 学习笔记HTML-css-JS.zip学习笔记HTML-css-JS.zip学习笔记...
Java学习笔记->1.关键字、变量以及常量.md
Java基础每日复习笔记-JavaSE高级阶段.2020-10-13-211312.edf
J2EE学习笔记--DAO设计模式基础.txt
会计从业资格证学习笔记----会计基础.docx
Java 版设计模式学习笔记-java-design-patterns
Java学习笔记-面向对象-001-面向对象概括 还会继续上传后续文本 详情访问http://www.feifeiblog.com/
Java并发编程与高并发解决方案-学习笔记-www.itmuch.com
Matlab学习笔记--Matlab画图15页word.docxMatlab学习笔记--Matlab画图15页word.docx
DELPHI学习笔记----获取WINDOWS进程信息.pdf
2023-04-06-项目笔记-第一阶段- 6 注释 7.选择语句 7.1选择语句的使用 7.1选择语句的使用1 8.循环语句 8.1while循环的实例 9.函数 9.1函数的使用 10.数组 10.1.数组的使用 11.操作符 11.1操作符的使用 12. 常见...