第一周总结
本周是放假第一周,打算把Java重新学一遍
在面向对象程式设计方法中,封装(英语:Encapsulation)是指一种将抽象性函式接口的实现细节部分包装、隐藏起来的方法。
封装可以被认为是一个保护屏障,防止该类的代码和数据被外部类定义的代码随机访问。
要访问该类的代码和数据,必须通过严格的接口控制。
封装最主要的功能在于我们能修改自己的实现代码,而不用修改那些调用我们代码的程序片段。
适当的封装可以让程式码更容易理解与维护,也加强了程式码的安全性。
封装的优点
- 
1. 良好的封装能够减少耦合。 
- 
2. 类内部的结构可以自由修改。 
- 
3. 可以对成员变量进行更精确的控制。 
- 
4. 隐藏信息,实现细节。 
private关键字:是一个权限修饰符
可以修饰成员(成员变量和成员方法)
被private修饰的成员只能在本类中才能访问
针对private修饰的成员变量,如果需要被其他类使用,提供相应的操作
提供“setXxx(参数)” 方法,用于给成员变量赋值,方法用public修饰
提供"getXxx()"方法,用于获取成员变量的值,方法用public修饰
package test3; /** * ClassName: GirlFriend * Package: test3 * Description: * * @Author: 20213923ysf * @Create: 2023/7/11 - 12:57 */ public class GirlFriend1 { private String name; private int age; private String gender; public void setName(String n) { name = n; } public String getName() { return name; } public void setAge(int a) { if (a >= 12 && a <= 28) { age = a; } else { System.out.println("年龄输入有误"); } } public int getAge() { return age; } public void setGender(String g) { gender = g; } public String getGender() { return gender; } public void eat() { System.out.println("女朋友在吃饭"); } public void sleep() { System.out.println("女朋友在睡觉"); } }
package test3; import test2.GirlFriend; /** * ClassName: GirlFriendTest * Package: test3 * Description: * * @Author: 20213923ysf * @Create: 2023/7/11 - 13:04 */ public class GirlFriend1Test { public static void main(String[] args) { GirlFriend1 gf1 = new GirlFriend1(); gf1.setName("青雀"); gf1.setAge(16); gf1.setGender("女"); System.out.println(gf1.getName()); System.out.println(gf1.getAge()); System.out.println(gf1.getGender()); } }
在Java中,this是一个引用,它指向当前对象的实例。它可以用于以下几个方面:
- 
用于区分局部变量和实例变量:在方法或构造函数中,如果存在一个局部变量和一个实例变量同名,可以使用this关键字来引用实例变量。这样可以明确地告诉编译器你要使用的是实例变量,而不是局部变量。 
- 
用于在一个构造函数中调用另一个重载的构造函数:如果一个类有多个重载的构造函数,其中一个构造函数可能会调用其他构造函数来避免代码的重复。在这种情况下,可以使用this关键字来引用另一个构造函数。 
- 
用于在方法内部访问当前对象的成员变量和方法:当需要在一个类的实例方法中访问当前对象的成员变量或方法时,使用this关键字来引用当前对象。 
- 
用于返回当前对象的引用:在某些情况下,需要在方法中返回当前对象的引用,这样可以支持方法链式调用。使用this关键字返回当前对象的引用。 
总之,this关键字在Java中主要用于引用当前对象的实例,它的使用可以帮助区分变量、调用构造函数、访问成员变量和方法,以及支持方法链式调用。
package test3; /** * ClassName: GirlFriend1 * Package: test3 * Description: * * @Author: 20213923ysf * @Create: 2023/7/11 - 12:57 */ public class GirlFriend1 { private String name;//name为成员变量 private int age; private String gender; public void setName(String name) //name是局部变量 { this.name = name; } public String getName() { return name; } public void setAge(int age) { if (age >= 12 && age <= 28) { this.age = age; } else { System.out.println("年龄输入有误"); } } public int getAge() { return age; } public void setGender(String gender) { this.gender = gender; } public String getGender() { return gender; } public void eat() { System.out.println("女朋友在吃饭"); } public void sleep() { System.out.println("女朋友在睡觉"); } }
从内存的角度去解释:
基本数据类型:数据值是存储在自己的空间中
特点:赋值给其他变量,也是赋的真实的值。
引用数据类型:数据值是存储在其他空间中,自己空间中存储的是地址值。
特点:赋值给其他变量,赋的地址值。
 
                     
                    
                 
                    
                 
                
            
         
         浙公网安备 33010602011771号
浙公网安备 33010602011771号