如何实现封装
可以分为两步:
第一步:将类的变量声明为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