• 疯狂JAVA讲义学习——基础代码练习——this关键字的使用


    对象的产生和使用

    1、创建对象的根本途径就是构造器,所以创建对象通过关键字new 加上对应的构造器即可.

    2、如果访问权限允许,类里定义的属性和方法可以通过类或实例来调用,

    3、有static 修饰的访求和属性,既可通过类来调用,也可以通过实例来调用.

    对象.引用和指针

    1、Person p = new Person();,这行代码创建了一个Person 实例,也被称为对象,这个对象被赋给了p变量.

    2、也就是说引用型变量里存放的仅仅是一个引用,它指向实际的对象.

    对象的this 引用

    this 关键字总是指向调用该方法的对象:

               1.构造器中引用该构造器执行初始化的对象

                2.在方法中引用调用该方法的对象

    在方法里的this 指谁调用就指谁

    注: this 不能用在有static 修饰的方法中.

    ===========================================================

    public class Dog22
    {
        public void jump()
        {
            System.out.println("正在执行jump方法");
        }
    
        public void run()
        {
            this.jump();
            System.out.println("正在执行run方法");
        }
    }
    

      

    public class DogTest22
    {
        public static void main(String[] args)
        {
    
            Dog22 dog = new Dog22();
    
            dog.run();
        }
    }
    

      

     

    this 关键字总是指向调用该方法的对象

    在方法里的this 指谁调用就指谁

     =============================================================

     

     

     

     

     =================================================================

    public class ThisInConstructor
    {
        public int foo;
    
        public ThisInConstructor()
        {
            int foo = 0;
    
            this.foo = 6;
        }
        public static void main(String[] args)
        {
            System.out.println(new ThisInConstructor().foo);
        }
    }
    

      

     

    public class Employee
    {
        String name;
        int age;
        String designation;
        double salary;
     
        public Employee(String name)
        {
            this.name = name;
        }
     
        public void empAge(int empAge)
        {
            age =  empAge;
        }
     
        public void empDesignation(String empDesig)
        {
            designation = empDesig;
        }
     
        public void empSalary(double empSalary)
        {
            salary = empSalary;
        }
     
        public void printEmployee()
        {
            System.out.println("名字:"+ name );
            System.out.println("年龄:" + age );
            System.out.println("职位:" + designation );
            System.out.println("薪水:" + salary);
        }
     
        public static void main(String[] args)
        {
     
            Employee empOne = new Employee("RUNOOB1");
            Employee empTwo = new Employee("RUNOOB2");
     
     
            empOne.empAge(26);
            empOne.empDesignation("gao_ji");
            empOne.empSalary(1000);
            empOne.printEmployee();
     
            empTwo.empAge(21);
            empTwo.empDesignation("di_ji");
            empTwo.empSalary(500);
            empTwo.printEmployee();
        }
     
     
    }
    

      

    名字:RUNOOB1
    年龄:26
    职位:gao_ji
    薪水:1000.0

    名字:RUNOOB2
    年龄:21
    职位:di_ji
    薪水:500.0

    public class Employee
    {
        String name;
        int age;
        String designation;
        double salary;
     
        public Employee(String name,int age)
        {
            this.name = name;
            this.age = age;
        }
     
     
        public void empDesignation(String empDesig)
        {
            designation = empDesig;
        }
     
        public void empSalary(double empSalary)
        {
            salary = empSalary;
        }
     
        public void printEmployee()
        {
            System.out.println("名字:"+ name );
            System.out.println("年龄:" + age );
            System.out.println("职位:" + designation );
            System.out.println("薪水:" + salary);
        }
     
        public static void main(String[] args)
        {
     
            Employee empOne = new Employee("RUNOOB1",25);
            Employee empTwo = new Employee("RUNOOB2",22);
     
     
            empOne.empDesignation("gao_ji");
            empOne.empSalary(1000);
            empOne.printEmployee();
     
            empTwo.empDesignation("di_ji");
            empTwo.empSalary(500);
            empTwo.printEmployee();
        }
     
     
    }
    

      

    名字:RUNOOB1
    年龄:25
    职位:gao_ji
    薪水:1000.0

    名字:RUNOOB2
    年龄:22
    职位:di_ji
    薪水:500.0

     ===========================================

     与普通方法类似的是,大部分时候,在构造器中访问其他成员变量和方法时,都可以省略this前缀;

    但是,如果构造器中有一个与成员变量同名的局部变量,又必须在构造器中,访问这个被覆盖的成员变量,则必须使用this前缀;

  • 相关阅读:
    Web前端学习笔记之离线安装npm
    Java学习笔记之linux配置java环境变量(三种环境变量)
    Docker学习笔记之docker volume 容器卷的那些事(二)
    Docker学习笔记之docker volume 容器卷的那些事(一)
    Docker学习笔记之docker-save vs docker-export vs docker-commit
    Linux学习笔记之Linux运行脚本时 $' ' 错误
    K8S学习笔记之Flannel解读
    map_server地图服务器
    ros navigation stack 各个包的作用
    struct 与 class 的区别
  • 原文地址:https://www.cnblogs.com/xiaobaibailongma/p/15971540.html
Copyright © 2020-2023  润新知