动力节点学习笔记java
- /*
- this关键字:
- 1.this是什么?
- this是一个引用类型,
- 在堆中的每个java对象上都有this,
- this保存内存地址指向自身。
- 2.this能用在哪些地方?
- 第一:this能够用在成员方法中.
- 第二:this能够用在构造方法中.
- 语法:this(实参);
- 经过一个构造方法去调用另外一个构造方法。
- 目的:代码重用。
- this(实参);必须出如今构造方法的第一行。
- */
- public class ThisTest01{
- public static void main(String[] args){
- /*
- //建立对象
- MyDate t1 = new MyDate(2008,8,8);
- System.out.println(t1.year+"年"+t1.month+"月"+t1.day+"日");
- //建立对象
- MyDate t2 = new MyDate(2012,12,20);
- System.out.println(t2.year+"年"+t2.month+"月"+t2.day+"日");
- */
- MyDate t3 = new MyDate();
- System.out.println(t3.year+"年"+t3.month+"月"+t3.day+"日");
- }
- }
- //日期
- class MyDate{
- //Field
- int year;
- int month;
- int day;
- //Constructor
- //需求:在建立日期对象的时候,默认的日期是:1970-1-1
- MyDate(){
- this(1970,1,1);
- /*
- this.year = 1970;
- this.month = 1;
- this.day = 1;
- */
- }
- MyDate(int _year,int _month,int _day){
- year = _year;
- month = _month;
- day = _day;
- }
- }
- /*
- this能够用来区分红员变量和局部变量
- */
- public class ThisTest03{
- public static void main(String[] args){
- Manager m1 = new Manager("KING");
- Manager m2 = new Manager();
- m2.setName("FORD");
- System.out.println(m1.getName()); //KING
- System.out.println(m2.getName()); //FORD
- }
- }
- class Manager{
- //Field
- private String name;
- //Constructor
- Manager(){}
- Manager(String name){
- this.name = name;
- }
- //Method
- //成员方法
- public void setName(String name){
- this.name = name;
- }
- //成员方法
- public String getName(){
- //return name;
- return this.name;
- }
- }
- /*
- this不能用在静态方法中.
- 静态方法的执行根本不须要java对象的存在。直接使用 类名. 的方式访问。
- 而this表明的是当前对象。因此静态方法中根本没有this
- */
- public class ThisTest04{
- String str;
- //入口
- public static void main(String[] args){
- Person.m1();
- //str是一个成员变量,必须由 引用. 访问
- //System.out.println(str);
- ThisTest04 tt = new ThisTest04();
- System.out.println(tt.str); //null
- }
- }
- class Person{
- //Field
- String name;
- //Constructor
- Person(){}
- Person(String name){
- this.name = name;
- }
- //静态方法
- public static void m1(){
- //System.out.println(this.name);
- //若是要想访问name只能:
- Person p1 = new Person("刘德华");
- System.out.println(p1.name);
- }
- }
- /*
- this能用在成员方法中。
- this就是当前对象.
- */
- public class ThisTest02{
- public static void main(String[] args){
- //建立对象
- Employee e = new Employee(7369,"SMITH");
- //工做
- e.work();
- //建立对象
- Employee e1 = new Employee(7370,"FORD");
- //工做
- e1.work();
- e.m1();
- }
- }
- class Employee{
- //员工编号
- int empno;
- //员工名
- String ename;
- //Constructor
- Employee(){}
- Employee(int _empno,String _ename){
- empno = _empno;
- ename = _ename;
- }
- //提供一个员工工做的方法.
- //this用在成员方法中,谁去调用这个成员方法,this就表明谁。
- //this指的就是当前对象。
- public void work(){
- System.out.println(this.ename + "在工做");
- //System.out.println(ename + "在工做"); //this. 能够省略
- }
- //成员方法
- public void m1(){
- this.m2();
- m2();
- }
- //成员方法
- public void m2(){
- System.out.println("TESTING");
- }
- }