PTA——JAVA(类和对象一)知识点及错题整理(private\this的使用)

1.私有属性
private

class Student{
private String sex;
private String name;
private int age;
}

2.this的使用
注意
this可以出现在构造方法和实例方法中,不可以出现在类方法中

所以在类中的static void f(){}这种类方法出现this是不对的
但是又会出现成员变量和局部变量名重复的情况,

以下为错误示例和解决示例

class People{
    static int x;
    static void set(int x){
    this.x = x;//意思想让参数x的值赋给成员变量x
               //因为this不能出现在类方法中,所以错误!
    }

解决方案

class People{
  static int x;
  static void set(int x){
  People.x = x;
  }

//既然x是People共享的,这样就可以解决了
//但是需要注意的是,既然是共享的变量,则一改全改,划重点!!

①在构造方法中使用this.成员变量(当在方法中成员变量和局部变量重名时)
当在构造方法中使用this时,它指的是正在创建的这个对象。
情况1—→可以指代成员变量

class Student{
    private String sex;   //1
    private String name;  //2
    private int age;      //3

Student (String sex,String name,int age){
     this.sex = sex;   //this.sex指的是1处的成员变量sex
     this.name = name; //this.name指的是2处的成员变量name
     this.age = age;   //this.age指的是3处的成员变量age
}                      //意思是成员变量sex\name\age
                       //被局部变量参数sex\name\age修改。
}

情况2—→可以指代创建的对象

   public class People{
      String name;
      People(String s){
         name = s;
         this.words();  //1
   }
      void words(){
         String word = new String ("Be confident!");
         System.out.println(name+" "
         +"said to him self"+" "+"'"+word+"'");
         }
      public static void main(String args[]){
         People Mustang = new People("Mustang");
         }
   }
         //创建对象“Mustang”的时候
         //1处构造方法中的this指代的就是对象 Mustang
         //最终输出Mustang said to him self 'Be confident!'

②在构造方法或实例对象中使用this(参数)来调用其他构造方法

实例方法一定是对象调用,当一个对象调用一个实例方法时,实例方法
中的this指的就是当前正在调用的对象.

 public static void main(String args[]){
     People Mustang = new People("Mustang");
         }
     public class People{
      String name;
      People(String s){
         name = s;
         this();      //调用1处无参的构造方法
   }
      People(){   //1
         String word = new String ("Be confident!");
         System.out.println(name+" "
         +"said to him self"+" "+"'"+word+"'");
         }
   }

注意,在调用的有参数的构造方法时,应在this后面的括号内带上具体的类型值,而不仅仅是类型而已


class Test {
    public Test(int x){  //1
    	System.out.println("I'm the best");
    }
 public Test(){
     this(1);//调用1处的构造方法,不仅限于1.只要是整数类型的数值都可以。
     System.out.println("I'm the best");
    }
    }

3.类可以有内部类,而方法不可以嵌套

4.一个对象可以有多个引用

发布了32 篇原创文章 · 获赞 6 · 访问量 1546

猜你喜欢

转载自blog.csdn.net/Pan_ZC/article/details/104828207