day06-面向对象特性之封装的优化_this的概述和使用

This commit is contained in:
2026-05-10 14:30:10 +08:00
parent 153253c031
commit db5d908e6c
2 changed files with 20 additions and 9 deletions

View File

@@ -15,11 +15,11 @@ public class Demo04 {
s.name = "张三"; s.name = "张三";
System.out.println(s.age); System.out.println(s.age);
System.out.println(s.name);*/ System.out.println(s.name);*/
System.out.println("对象s的地址为"+s);
s.setName("张三"); s.setName("李四");
System.out.println(s.getName()); System.out.println(s.getName());
s.setAge(-18); s.setAge(18);
System.out.println(s.getAge()); System.out.println(s.getAge());
} }
} }

View File

@@ -2,6 +2,8 @@ package com.inmind.private02;
/* /*
private:权限修饰符最小一个权限被它修饰的内容只能在本类中访问private可以修饰 private:权限修饰符最小一个权限被它修饰的内容只能在本类中访问private可以修饰
成员方法和成员变量,表示私有化 成员方法和成员变量,表示私有化
注意在本类中使用任意的成员内容前面都有this.,不写,编译器也会加上
*/ */
public class Student { public class Student {
//姓名 //姓名
@@ -11,19 +13,28 @@ public class Student {
//get方法 //get方法
public String getName(){ public String getName(){
return name; return this.name;
} }
//set方法 //set方法
public void setName(String a){ public void setName(String name){
name = a; /*
当前代码想要的效果:成员变量 = 局部变量
但当前的效果:局部变量 = 局部变量
如何解决当前重名的问题???
使用thisthis.成员变量名,一定表示当前对象的成员变量
注意this表示一个对象哪个对象调用了当前的方法那么这个this就表示该对象
*/
this.name = name;
//s.name = name;
System.out.println("this:"+this);
} }
//get方法 //get方法
public int getAge(){ public int getAge(){
return age; return this.age;
} }
//set方法 //set方法
@@ -32,12 +43,12 @@ public class Student {
System.out.println("您输入的年龄有误"); System.out.println("您输入的年龄有误");
return;//提前结束方法如果年龄小于0或者大于120则直接返回不执行下面的代码 return;//提前结束方法如果年龄小于0或者大于120则直接返回不执行下面的代码
} }
age = a; this.age = a;
} }
//学习 //学习
public void study(String book){ public void study(String book){
System.out.println(name+"学生正在学习" + book); System.out.println(this.name+"学生正在学习" + book);
} }
} }