java面向对象(二)特殊变量this
2013-09-16 16:53
288 查看
this 变量代表对象本身
当类中有两个同名变量,一个属于类(类的成员变量),而另一个属于某个特定的方法(方法中的局部变量),使用this区分成员变量和局部变量。
class Point
{
int x,y;
Point(int a,int b)
{
x=a;
y=b;
}
Point()
{}
void output()
{
System.out.println(x);
System.out.println(y);
}
void output(int x,int y)
{
x=x;
y=y;
}
public static void main(String[] args)
{
Point pt;
pt=new Point(3,3);
// pt=new Point();
pt.output(5,5);
pt.output();
}
}
rihiroshitekiMacBook-Air:test LiBo$ java Point
3
3
rihiroshitekiMacBook-Air:test LiBo$ java Point
5
5
rihiroshitekiMacBook-Air:test LiBo$ cat Point.java
class Point
{
int x,y;
Point(int a,int b)
{
x=a;
y=b;
}
Point()
{}
void output()
{
System.out.println(x);
System.out.println(y);
}
void output(int x,int y)
{
this.x=x;
this.y=y;
}
public static void main(String[] args)
{
Point pt;
pt=new Point(3,3);
// pt=new Point();
pt.output(5,5);
pt.output();
}
}
rihiroshitekiMacBook-Air:test LiBo$
使用this简化构造函数的调用。
rihiroshitekiMacBook-Air:test LiBo$ java Point
1
1
rihiroshitekiMacBook-Air:test LiBo$ cat Point.java
class Point
{
int x,y;
Point(int a,int b)
{
x=a;
y=b;
}
Point()
{
this(1,1);
}
void output()
{
System.out.println(x);
System.out.println(y);
}
void output(int x,int y)
{
this.x=x;
this.y=y;
}
public static void main(String[] args)
{
Point pt;
// pt=new Point(3,3);
pt=new Point();
// pt.output(5,5);
pt.output();
}
}
关于实例的方法和实例数据成员的进一步说明
一个类所有的实例(对象)调用的成员方法在内存中只有一份拷贝,尽管在内存中可能有多个对象,而数据成员在类的每个对象所在内存中都存在一份拷贝。this变量润许相同的实例方法为不同的对象工作,
rihiroshitekiMacBook-Air:test LiBo$ java Point
6
7
rihiroshitekiMacBook-Air:test LiBo$ cat Point.java
class Point
{
int x,y;
Point(int a,int b)
{
x=a;
y=b;
}
Point()
{
this(1,1);
}
void output()
{
System.out.println(x);
System.out.println(y);
}
void output(int x,int y)
{
this.x=x;
this.y=y;
}
public static void main(String[] args)
{
Point pt;
// pt=new Point(3,3);
pt=new Point();
// pt.output(5,5);
// pt.output();
Point pt2=new Point();
pt.x=6;
pt2.x=7;
System.out.println(pt.x);
System.out.println(pt2.x);
}
}
this变量润许相同的实例方法为不同的对象工作.每当调用一个实例的方法时,this变量将被设置成引用该实例方法的特定的类对象。方法的代码接着会与this所代表的对象的特定数据建立关联。
class Point
{
int x,y;
Point(int a,int b)
{
x=a;
y=b;
}
Point()
{
this(1,1);
}
static void output()
{
// System.out.println(x);
// System.out.println(y);
System.out.println("output() called");
}
void output(int x,int y)
{
this.x=x;
this.y=y;
}
public static void main(String[] args)
{
Point.output();
/* Point pt;
// pt=new Point(3,3);
pt=new Point();
// pt.output(5,5);
// pt.output();
Point pt2=new Point();
pt.x=6;
pt2.x=7;
System.out.println(pt.x);
System.out.println(pt2.x);*/
}
}
当类中有两个同名变量,一个属于类(类的成员变量),而另一个属于某个特定的方法(方法中的局部变量),使用this区分成员变量和局部变量。
class Point
{
int x,y;
Point(int a,int b)
{
x=a;
y=b;
}
Point()
{}
void output()
{
System.out.println(x);
System.out.println(y);
}
void output(int x,int y)
{
x=x;
y=y;
}
public static void main(String[] args)
{
Point pt;
pt=new Point(3,3);
// pt=new Point();
pt.output(5,5);
pt.output();
}
}
rihiroshitekiMacBook-Air:test LiBo$ java Point
3
3
rihiroshitekiMacBook-Air:test LiBo$ java Point
5
5
rihiroshitekiMacBook-Air:test LiBo$ cat Point.java
class Point
{
int x,y;
Point(int a,int b)
{
x=a;
y=b;
}
Point()
{}
void output()
{
System.out.println(x);
System.out.println(y);
}
void output(int x,int y)
{
this.x=x;
this.y=y;
}
public static void main(String[] args)
{
Point pt;
pt=new Point(3,3);
// pt=new Point();
pt.output(5,5);
pt.output();
}
}
rihiroshitekiMacBook-Air:test LiBo$
使用this简化构造函数的调用。
rihiroshitekiMacBook-Air:test LiBo$ java Point
1
1
rihiroshitekiMacBook-Air:test LiBo$ cat Point.java
class Point
{
int x,y;
Point(int a,int b)
{
x=a;
y=b;
}
Point()
{
this(1,1);
}
void output()
{
System.out.println(x);
System.out.println(y);
}
void output(int x,int y)
{
this.x=x;
this.y=y;
}
public static void main(String[] args)
{
Point pt;
// pt=new Point(3,3);
pt=new Point();
// pt.output(5,5);
pt.output();
}
}
关于实例的方法和实例数据成员的进一步说明
一个类所有的实例(对象)调用的成员方法在内存中只有一份拷贝,尽管在内存中可能有多个对象,而数据成员在类的每个对象所在内存中都存在一份拷贝。this变量润许相同的实例方法为不同的对象工作,
rihiroshitekiMacBook-Air:test LiBo$ java Point
6
7
rihiroshitekiMacBook-Air:test LiBo$ cat Point.java
class Point
{
int x,y;
Point(int a,int b)
{
x=a;
y=b;
}
Point()
{
this(1,1);
}
void output()
{
System.out.println(x);
System.out.println(y);
}
void output(int x,int y)
{
this.x=x;
this.y=y;
}
public static void main(String[] args)
{
Point pt;
// pt=new Point(3,3);
pt=new Point();
// pt.output(5,5);
// pt.output();
Point pt2=new Point();
pt.x=6;
pt2.x=7;
System.out.println(pt.x);
System.out.println(pt2.x);
}
}
this变量润许相同的实例方法为不同的对象工作.每当调用一个实例的方法时,this变量将被设置成引用该实例方法的特定的类对象。方法的代码接着会与this所代表的对象的特定数据建立关联。
class Point
{
int x,y;
Point(int a,int b)
{
x=a;
y=b;
}
Point()
{
this(1,1);
}
static void output()
{
// System.out.println(x);
// System.out.println(y);
System.out.println("output() called");
}
void output(int x,int y)
{
this.x=x;
this.y=y;
}
public static void main(String[] args)
{
Point.output();
/* Point pt;
// pt=new Point(3,3);
pt=new Point();
// pt.output(5,5);
// pt.output();
Point pt2=new Point();
pt.x=6;
pt2.x=7;
System.out.println(pt.x);
System.out.println(pt2.x);*/
}
}
相关文章推荐
- Java第二课 Java面向对象编程,面向对象编程和面向过程编程的区别,我们如何才能掌握面向对象的编程,类和对象的关系;讲解了Java中的构造、重载、this和super变量、静态变量、Java中的常
- java面向对象思想之方法的重载、this变量、静态变量、Java中的常量
- JAVA面向对象基础:继承、变量隐藏、方法重写、包、修饰符、this、super
- JAVA基础day05 面向对象思想 成员变量和方法 封装 构造方法和this的使用
- java面向对象之成员变量和局部变量 以及他们的内存分配
- java面向对象中的变量
- 变量可见性和volatile, this逃逸, 不可变对象, 以及安全公开--Java Concurrency In Practice C03读书笔记
- Java面向对象-final类和final方法、final变量(常量)
- 在Java中有两个非常特殊的变量:this和super
- Java面向对象-变量的生命周期和选用
- 【学习笔记02】java面向对象-成员变量、匿名对象
- Java学习笔记9(面向对象二:this、继承、抽象类)
- Java中的两个特殊变量this和super
- Java中的两个特殊变量this和super
- 黑马程序员——Java基础---面向对象代码块和继承和this和super和重写和重载和final
- java面向对象-多态中成员函数成员变量的特点
- JAVA学习笔记3--类,对象,变量,方法,构造方法,this,引用类型
- java---面向对象vs面向过程,局部变量vs成员变量
- 重踏学习Java路上_Day07(成员与局部变量,形参,匿名对象,封装,private,this,构造与成员方法,static)
- Java中的两个特殊变量this和super