一.this關鍵詞介紹.java
說明:該知識點僅僅限於本人對其瞭解的範圍.oop
package com.study.java.oop;
public class StudyOop02 { private String username; private String password; private int number; private int x; public StudyOop02(){ this("空","空",20);//經過this()調用 構造方法 } public StudyOop02(String username,String ps,int x){ this.username = username;// this.成員變量名 調用類的成員變量 this.password = ps; this.x = x; //System.out.println(username+"=="+password+"=="+x); } public StudyOop02(String username,int x){ this(username,"2個參數",x); } public void outprint(StudyOop02 s){ System.out.println("---------------"); System.out.println(s.username); System.out.println(s.password); System.out.println(s.number); System.out.println(s.x); System.out.println("---------------"); f();//寫成 this.f() >>> 調用方法 } private void f() { int x = 200; x = this.x++; System.out.println("成員變量x的值: "+this.x+" 局部變量x的值: "+x); //加入Java開發交流君樣:756584822一塊兒吹水聊天 }
局部變量和成員變量 同名 this.變量名 調用類 的成員變量和方法this
public StudyOop02(String username, String passwrd, int number, int x) { super(); this.username = username; this.password = passwrd; this.number = number; this.x = x; } public static void main(String[] args) { StudyOop02 s1 = new StudyOop02(); StudyOop02 s2 = new StudyOop02("小馬甲",23); s1.outprint(s1); s2.outprint(s2); /** 報錯 this 不能在靜態方法 中 使用**/ //System.out.println(this.username = "2222222"); } /** * 報錯 this 不能在靜態塊 中使用 */ /*static{ this.username = "xxx "; this.password = "1111"; this.number = "11111"; this.x = 200000; }*/ //加入Java開發交流君樣:756584822一塊兒吹水聊天 }
運行結果:指針
--------------- 空 空 0 20 ---------------
成員變量x的值: 21 局部變量x的值: 20code
小馬甲 2個參數 0 23 ---------------
成員變量x的值: 24 局部變量x的值: 23對象
二.super 關鍵詞使用.開發
父類:Fatherclass
package com.study.java.oop; /** * 出現的位置:子類中 * 使用 方式:子類中使用 核心點:子類在構造以前一定先構造父類 且super關鍵詞只能出如今子類構造的第一行 * super.變量名 >>> 調用的是 父類中成員變量 * super.方法名 >>> 調用的是 父類中方法 * super(參數) >>> 調用父類的構造方法 有參調有參 無參調無參 * @author ys.zhangjy * */ public class Father { private String name ; private String job; private int age; public String s = "父類中的變量"; public Father(){ System.out.println("父類無參構造被調用"); } public Father(String name,String job,int age){ super(); this.name = name; this.job = job; this.age = age; } public void test(){ System.out.println("super.方法名 >>> 調用的是父類中的方法"); } //加入Java開發交流君樣:756584822一塊兒吹水聊天 public void play(){ System.out.println("調用父類的play()方法"); } }
子類:Subtest
package com.study.java.oop; public class Sub extends Father{ private String name ; private String job; private int age; public String s = "子類中的成員變量"; public Sub(){ super();//加入Java開發交流君樣:756584822一塊兒吹水聊天 System.out.println("子類無參構造被調用"); //super("小明","xiaoshou",20); 報錯 說明super關鍵詞只能出如今子類構造的第一行 } public Sub(String name,String job,int age){ super("小明","xiaoshou",20); System.out.println("子類有參構造被調用"); } public void play(){ System.out.println("調用父類中的成員變量:"+super.s); System.out.println("調用子類的play()方法"); super.test(); } public void test(){ System.out.println("子類中的 方法"); } public static void main(String[] args) { Sub s = new Sub(); s.play(); //加入Java開發交流君樣:756584822一塊兒吹水聊天 } }
運行結果:變量
父類無參構造被調用 子類無參構造被調用 調用父類中的成員變量:父類中的變量 調用子類的play()方法 super.方法名 >>> 調用的是父類中的方法
說明: