zoukankan      html  css  js  c++  java
  • 第十节(this关键字 static关键字)

    this 关键字:
    
    是指当前调用的对象,如果有 100 个对象,将有 100this 对象指向各个对象
    
    this 关键字可以使用在:
    
    1. 当局部变量和成员变量重名的时候可以使用 this 指定调用成员变量
    
    2. 通过 this 调用另一个构造方法
    
    
    需要注意:this 只能用在构造函数和成员方法内部, 还可以应用在成员变量的声明上, static
    
    标识的方法里是不能使用 this

    static 关键字:

    static 修饰符可以修饰:变量、方法和代码块

    用 static 修饰的变量和方法,可以采用类名直接访问

    用 static 声明的代码块为静态代码块, JVM 第一次使用类的时候, 会执行静态代码块中的内容

    例题1:
    public
    class Ming{ // id private int id; // 姓名 private String name; // 性别 private boolean sex; // 年龄 private int age; /* 谁近谁优先 */ public Ming(int id,String name){ this.id = id; this.name = name; } public Ming(int id,String name,boolean sex,int age){ this.id = id; this.name = name; this.sex = sex; this.age = age; } // 设置id public void setId(int id){ this.id = id; } public int getId(){ return id; } // name public void setName(String name){ this.name = name; } public String getName(){ return name; } // sex public void setSex(boolean sex){ this.sex = sex; } public boolean getSex(){ return sex; } // age public void setAge(int age){ this.age = age; } public int getAge(){ return age; } } /* this 关键字 调用当前对象,如果有100对象,就会有100个this对象指向各个对象 1. 当局部变量和成员变量重名的时候 可以使用this指定调用成员变量 */ public class OOTest06{ public static void main(String[] args){ Ming ming = new Ming(); ming.setId(10001); ming.setName("Ming"); ming.setSex(true); ming.setAge(18); System.out.println("id: " + ming.getId()); System.out.println("Name: " + ming.getName()); System.out.println("Sex: " + ming.getSex()); System.out.println("Age: " + ming.getAge()); } }
    例题2:
    public
    class Ming{ // id private int id; // 姓名 private String name; // 性别 private boolean sex; // 年龄 private int age; /* 谁近谁优先 */ public Ming(int id,String name){ this.id = id; this.name = name; } public Ming(int id,String name,boolean sex,int age){ this.id = id; this.name = name; this.sex = sex; this.age = age; } // 设置id public void setId(int id){ this.id = id; } public int getId(){ return id; } // name public void setName(String name){ this.name = name; } public String getName(){ return name; } // sex public void setSex(boolean sex){ this.sex = sex; } public boolean getSex(){ return sex; } // age public void setAge(int age){ this.age = age; } public int getAge(){ return age; } } /* 采用静态变量实现 累加器 */ public class Ming01{ // id private int id; // 姓名 private String name; // 性别 private boolean sex; // 年龄 private int age; // 计算器,计算ming创建的个数 static int count; public Ming01(int id,String name,boolean sex,int age){ count++; this.id = id; this.name = name; this.sex = sex; this.age = age; } // 返回计数器 public int getCount(){ return count; } // 设置id public void setId(int id){ this.id = id; } public int getId(){ return id; } // name public void setName(String name){ this.name = name; } public String getName(){ return name; } // sex public void setSex(boolean sex){ this.sex = sex; } public boolean getSex(){ return sex; } // age public void setAge(int age){ this.age = age; } public int getAge(){ return age; } } /* 构造方法的 this使用 this 关键字 是指当前调用的对象,如果有 100 个对象,将 有 100 个 this 对象指向各个对象 this 关键字可以使用在: 1. 当局部变量和成员变量重名的时候可以使用 this 指定调用成员变量 2. 通过 this 调用另一个构造方 */ public class OOTest07{ public static void main(String[] args){ Ming ming = new Ming(1001,"Ming老师"); Ming ming01 = new Ming(100,"keke老师",true,18); System.out.println("id = " + ming.getId()); System.out.println("arry01-id = " + ming01.getId()); } }
    例题3:
    /*
    采用静态变量实现 累加器 */ public class Ming01{ // id private int id; // 姓名 private String name; // 性别 private boolean sex; // 年龄 private int age; // 计算器,计算ming创建的个数 static int count; public Ming01(int id,String name,boolean sex,int age){ count++; this.id = id; this.name = name; this.sex = sex; this.age = age; } // 返回计数器 public int getCount(){ return count; } // 设置id public void setId(int id){ this.id = id; } public int getId(){ return id; } // name public void setName(String name){ this.name = name; } public String getName(){ return name; } // sex public void setSex(boolean sex){ this.sex = sex; } public boolean getSex(){ return sex; } // age public void setAge(int age){ this.age = age; } public int getAge(){ return age; } } /* static 关键字 static 修饰符可以修饰:变量、方法和代码块 用 static 修饰的变量和方法,可以采用类名直接访问 用 static 声明的代码块为静态代码块, JVM 第一次使用类的时候, 会执行静态代码块中的内容 */ public class OOTest08{ public static void main(String[] args){ Ming01 a = new Ming01(1101,"ming老师",true,18); Ming01 b = new Ming01(100,"keke老师",true,58); //System.out.println(a.getCount());//输出2 //System.out.println(b.getCount());//输出2 System.out.println(Ming01.count);//输出2 } }
    例题4:static
    /*
    静态方法的初始化顺序 */ public class OOTest09{ private static int age = 18; static{ System.out.println("----------静态语句 1----------"); } static{ System.out.println("----------静态语句 2----------"); } static{ System.out.println("----------静态语句 3----------"); } static{ System.out.println("----------静态语句 4----------"); System.out.println("age = " + age); } public static void main(String[] args){ System.out.println("=-----------main----------"); } //输出:从上到下 不是从main里面开始 }
  • 相关阅读:
    闭包
    线程与进程
    异常处理
    socket编程
    面向对象编程
    模块
    正则表达式
    递归、二分查找、冒泡算法
    装饰器
    迭代器与生成器
  • 原文地址:https://www.cnblogs.com/Deng1185246160/p/4228508.html
Copyright © 2011-2022 走看看