如何实现封装
可以分为两步:
第一步:将类的变量声明为private。
第二步:提供公共set和get方法来修改和获取变量的值。
代码展示
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
|
public class User { private String name; private int age; private int id; private String address; public int getAge(){ return age; } public String getName(){ return name; } public int getId(){ return id; } public String getAddress(){ return address; } public void setName(String Newname){ name = Newname; } public void setAge( int Newage){ age = Newage; } public void setAddress(String Newaddress){ address= Newaddress; } } class Mainclass{ public static void main(String[] args) { User user = new User(); user.setAge( 18 ); user.setName( "Kevin" ); user.setAddress( "江苏" ); System.out.println( "Name:" +user.getName()+ ",Age:" +user.getAge()); } } |
上面就是一个写好的封装啦 但是有很多用户,很多属性,写起来就很麻烦,下面提供一种一行代码搞定的方法
构造方法
1
2
3
|
public User{ // 方法名与类名同名 没有返回值结构 其他与普通方法无异 } |
注意点:
对于每个类而言,都默认具有一个隐式的空参数构造方法 如果显式写了任意一个构造方法,空参数构造方法都会被覆盖
代码展示
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
|
public class User { private String name; private int age; private int id; private String address; public User(String name, int age, int id, String address) { this .name = name; this .age = age; this .id = id; this .address = address; } public int getAge(){ return age; } public String getName(){ return name; } public int getId(){ return id; } public String getAddress(){ return address; } public void setName(String Newname){ name = Newname; } public void setAge( int Newage){ age = Newage; } public void setAddress(String Newaddress){ address= Newaddress; } public void setId( int Newid){ id = Newid;} } class Mainclass{ public static void main(String[] args) { User user = new User( "kevin" , 18 , 001 , "江苏" ); //一行代码就能赋值啦 System.out.println( "Name:" +user.getName()+ ",Age:" +user.getAge()); } } |
总结
封装的优点
- 良好的封装能够减少耦合。
- 类内部的结构可以自由修改。
- 可以对成员变量进行更精确的控制。
- 隐藏信息,实现细节。
本篇文章就到这里了,希望能给你带来帮助,也希望您关注服务器之家的更多内容!
原文链接:https://blog.csdn.net/wxbbbbb/article/details/119244976