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