Java面向对象(6)--this关键字使用

简介: Java面向对象(6)--this关键字使用

this可理解为:当前对象或当前正在创建的对象


①在类的方法中, 我们可以使用"this.属性"或"this.方法"的方式,调用当前对象属性或方法。通常情况下,我们都选择省略"this."。特殊情况下,如果方法的形参和类的属性同名时,我们必须显式的使用"this .变量"的方式,表明此变量是属性,而非形参。


②在类的构造器中,我们可以使用"this.属性"或"this.方法"的方式,调用当前正在创建的对象属性或方法。通常情况下,我们都选择省略"this."。特殊情况下,如果构造器的形参和类的属性同名时,我们必须显的使用"this.变量"的方式,表明此变量是属性,而非形参。


在类的构造器中,可以显式的使用"this (形参列表)"方式,调用本类中指定的其他构造器。


构造器中不能通过"this (形参列表) "方式调用自己。


如果一个类中有n个构造器,则最多有n - 1构造器中使用了"this (形参列表) "。


规定: "this (形参列表) "必须声明在当前构造器的首行。


示例1:调用属性方法


class Person{ 
  private String name ;
  private int age ;
  public Person(String name,int age){
  this.name = name ; 
  this.age = age ; }
  public void getInfo(){
  System.out.println("姓名:" + name) ;
  this.speak();
  }
  public void speak(){
  System.out.println(“年龄:” + this.age);
  }
}


示例2:调用构造器


class Person{ 
  private String name ;
  private int age ;
  public Person(){ // 无参构造器
  System.out.println("创建对象") ;
  }
  public Person(String name){
  this(); // 调用本类中的无参构造器
  this.name = name ;
  }
  public Person(String name,int age){
  this(name) ; // 调用有一个参数的构造器
  this.age = age;
  }
  public String getInfo(){
  return "姓名:" + name + ",年龄:" + age ;
  } 
}


相关文章
|
1天前
|
Java
Java中的`synchronized`关键字是一个用于并发控制的关键字,它提供了一种简单的加锁机制来确保多线程环境下的数据一致性。
【6月更文挑战第24天】Java的`synchronized`关键字确保多线程数据一致性,通过锁定代码块或方法防止并发冲突。同步方法整个方法体为临界区,同步代码块则锁定特定对象。示例展示了如何在`Counter`类中使用`synchronized`保证原子操作和可见性,同时指出过度使用可能影响性能。
10 4
|
1天前
|
Java
Java的static关键字详解
Java的static关键字详解
|
3天前
|
存储 Java C语言
Java面向对象课程设计--类管理系统
Java面向对象课程设计--类管理系统
11 1
|
3天前
|
Java
Java面向对象特征(二)----- 继承
Java面向对象特征(二)----- 继承
Java面向对象特征(二)----- 继承
|
15小时前
|
Java
面向对象的JAVA代码详解
面向对象的JAVA代码详解
13 5
|
15小时前
|
Java 新能源
Java面向对象的过程及代码实现方法
Java面向对象的过程及代码实现方法
|
1天前
|
Java
synchronized关键字在Java中为多线程编程提供了一种简便的方式来管理并发,防止数据竞争和死锁等问题
Java的`synchronized`关键字确保多线程环境中的数据一致性,通过锁定代码段或方法防止并发冲突。它可修饰方法(整个方法为临界区)或代码块(指定对象锁)。例如,同步方法只允许一个线程执行,同步代码块则更灵活,可锁定特定对象。使用时需谨慎,以避免性能影响和死锁。
7 0
|
3天前
|
Java
Java面向对象特征(一)----- 封装
Java面向对象特征(一)----- 封装
|
4天前
|
机器学习/深度学习 Java API
杨校老师课堂之Java面向对象知识点整理集锦3
杨校老师课堂之Java面向对象知识点整理集锦
9 0
|
4天前
|
Java API 数据安全/隐私保护
杨校老师课堂之Java面向对象知识点整理集锦2
杨校老师课堂之Java面向对象知识点整理集锦
12 0