一.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.方法名 >>> 调用的是父类中的方法
说明: