【Java学习笔记之十四】Java中this用法小节
2017-08-16 15:10
841 查看
用类名定义一个变量的时候,定义的只是一个引用,外面可以通过这个引用来访问这个类里面的属性和方法。
那们类里面是够也应该有一个引用来访问自己的属性和方法纳?
呵呵,JAVA提供了一个很好的东西,就是 this 对象,它可以在类里面来引用这个类的属性和方法。先来个简单的例子:
关于返回类自身的引用,通过this 这个关键字返回自身这个对象然后在一条语句里面实现多次的操作。
一个类中定义两个构造函数,在一个构造函数中通过 this 这个引用来调用另一个构造函数,这样应该可以实现。
这样的实现机制在实际做应用开发的时候有会有什么样子的用处纳?贴下写的代码:
对this的调用必须是构造器中的第一个语句
下面给出实例:
会显示下面这个结果:
如果交换行号13-14这段顺序,改成这个:
会出现以下错误:
总结一下:
1) this 关键字是类内部当中对自己的一个引用,可以方便类中方法访问自己的属性;
2)可以返回对象的自己这个类的引用,同时还可以在一个构造函数当中调用另一个构造函数。
3)对this的调用必须是构造器中的第一个语句,否则会报错
那们类里面是够也应该有一个引用来访问自己的属性和方法纳?
呵呵,JAVA提供了一个很好的东西,就是 this 对象,它可以在类里面来引用这个类的属性和方法。先来个简单的例子:
public class ThisDemo { String name="Mick"; public void print(String name){ System.out.println("类中的属性 name="+this.name); System.out.println("局部传参的属性="+name); } public static void main(String[] args) { ThisDemo tt=new ThisDemo(); tt.print("Orson"); } }
关于返回类自身的引用,通过this 这个关键字返回自身这个对象然后在一条语句里面实现多次的操作。
public class ThisDemo { int number; ThisDemo increment(){ number++; return this; } private void print(){ System.out.println("number="+number); } public static void main(String[] args) { ThisDemo tt=new ThisDemo(); tt.increment().increment().increment().print(); } }
一个类中定义两个构造函数,在一个构造函数中通过 this 这个引用来调用另一个构造函数,这样应该可以实现。
这样的实现机制在实际做应用开发的时候有会有什么样子的用处纳?贴下写的代码:
public class ThisDemo { String name; int age; public ThisDemo (){ this.age=21; } public ThisDemo(String name,int age){ this(); this.name="Mick"; } private void print(){ System.out.println("最终名字="+this.name); System.out.println("最终的年龄="+this.age); } public static void main(String[] args) { ThisDemo tt=new ThisDemo("",0); //随便传进去的参数 tt.print(); } }
对this的调用必须是构造器中的第一个语句
下面给出实例:
import java.util.Arrays; class People { private int age; private String name; People(String name) { this.name=name; } People(String name,int age) { //this.People(name); this(name); this.age=age; //this(age); } public void speak() { System.out.println(name+","+age); } } /* class Car { int num; String color; void run() { System.out.println(num+"---"+color); } } */ class nzf { public static void main(String[] args) { People p=new People("Sakura",19); p.speak(); /* int []a1={1,2,3,4}; int []a2={1,2,3,4}; int []a3={2,3,4,5}; System.out.println(Arrays.equals(a1,a2)); System.out.println(Arrays.equals(a2,a3)); int []b=Arrays.copyOf(a1,6); for(int x:b) { System.out.print(x+" "); } System.out.println(); System.out.println(Arrays.toString(b)); Arrays.fill(b,2,4,1); System.out.println(Arrays.toString(b)); Arrays.sort(b); System.out.println(Arrays.toString(b)); */ /* Car c=new Car(); c.num=5; c.color="green"; c.run(); show(c); */ /* new Car().num=5; new Car().color="red"; new Car().run(); */ // show(new Car()); } /* public static void show(Car c) { c.num=6; c.color="black"; System.out.println(c.num+"---"+c.color); } */ }
会显示下面这个结果:
如果交换行号13-14这段顺序,改成这个:
this.age=age; this(name);
会出现以下错误:
总结一下:
1) this 关键字是类内部当中对自己的一个引用,可以方便类中方法访问自己的属性;
2)可以返回对象的自己这个类的引用,同时还可以在一个构造函数当中调用另一个构造函数。
3)对this的调用必须是构造器中的第一个语句,否则会报错
相关文章推荐
- 黑马程序员 java学习笔记之一(java中this和super关键字的用法)
- 【知了堂学习笔记】java中this和super的用法
- java学习笔记-this用法应用举例
- JAVA学习笔记--this的用法
- Java学习笔记——this的用法
- Java学习笔记三:This用法
- Java学习笔记-Scanner和BufferedReader的区别和用法
- java基础学习笔记第三天 this . static 的用法和值传递,引用传递
- java 设计模式学习笔记十四 template模版模式
- 学习笔记(4)~java中Scanner的用法
- Java 网络编程 学习笔记二 Socket 用法
- Java学习笔记(十四)
- Java菜鸟学习笔记--面向对象篇(四):This指针
- Java学习笔记之Pattern类的用法详解(正则表达式)
- java学习笔记5 - Spring MVC 整合Velocity及用法说明
- Java菜鸟学习笔记--面向对象篇(十四):继承与组合
- java学习之this 用法
- Java学习笔记之Formatter的用法详解(输出格式化)
- java学习笔记(十四)
- Java学习笔记之Formatter的用法详解