一篇文章带你深入了解Java封装

网友投稿 280 2022-10-08


一篇文章带你深入了解Java封装

目录如何实现封装代码展示构造方法注意点:代码展示总结

如何实现封装

可以分为两步:

第一步:将类的变量声明为private。

第二步:提供公共set和get方法来修改和获取变量的值。

代码展示

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;

}

http://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());

}

}

上面就是一个写好的封装啦 但是有很多用户,很多属性,写起来就很麻烦,下面提供一种一行代码搞定的方法

构造方法

public User{

// 方法名与类名同名 没有返回值结构 其他与普通方法无异

}

注意点:

对于每个类而言,都默认具有一个隐式的空参数构造方法 如果显式写了任意一个构造方法,空参数构造方法都会被覆盖

代码展示

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());

}

}

总结

封装的优点

良好的封装能够减少耦合。

类内部的结构可以自由修改。

可以对成员变量进行更精确的控制。

隐藏信息,实现细节。

本篇文章就到这里了,希望能给你带来帮助,也希望您关注我们的更多内容!


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:ACSS2020: 自动驾驶时代和ISO / SAE 21434法规下的安全车辆开发流程(acsac 2020)
下一篇:CSRF Minefield 1靶场渗透(csrf和ssrf的区别)
相关文章

 发表评论

暂时没有评论,来抢沙发吧~