java封装及四种权限修饰符详解
作者:fool_Java 时间:2023-03-20 20:18:38
1、对属性进行封装,使用户不能直接输入数据,我们需要避免用户再使用"对象.属性"的方式对属性进行赋值。则需要将属性声明为私有的(private).
2、我们将类的属性私有化(private),同时,提供公共的(public)方法来获取(getXxx)和设置(setXxx)此属性的值
封装性的体现,需要权限修饰符来配合
1.Java规定的4种权限(从小到大排列):private、缺省、protected 、public
2.这4种权限可以用来修饰类及类的内部结构:属性、方法、构造器、内部类
3.具体的,4种权限都可以用来修饰类的内部结构:属性、方法、构造器、内部类
修饰类的话,只能使用:缺省、public
例:
package KindMethod3;
public class privateTest {
//用private修饰,定义为私有变量,外不不能随意更改
private int age;//年龄
private String name;//名字
//同时,我们给这两个属性创建两个可以更改他们的接口
public void setAge(int age){
this.age=age;
}
public int getAge(){
return age;
}
public void setName(String name){
this.name=name;
}
public String getName(){
return name;
}
public void disPlay(){
System.out.println("我的名字叫"+name+"今年"+age+"岁");
}
}
package KindMethod3;
public class privateTest1 {
public static void main(String[] args) {
privateTest sc = new privateTest();
// 这个时候就不能直接给类中属性直接赋值了,就会报错
// sc.age=18;
// sc.name="小芳"
// 我们需要通过set方法给属性赋值,get取值
sc.setAge(18);
sc.setName("小芳");
sc.disPlay();
}
}
一下代码查看运行结果:
public class Order {
private int text1;
int text2;
public int text3;
private void methodPrivate(){
text1 = 1;
text2 = 2;
text3 = 3;
}
void methodDefault(){
text1 = 1;
text2 = 2;
text3 = 3;
}
public void methodPublic(){
text1 = 1;
text2 = 2;
text3 = 3;
}
}
public class OrderTest {
public static void main(String[] args) {
Order order = new Order();
order.text2 = 1;
order.text3 = 2;
//出了Order类之后,私有的结构就不可以调用了
//order.text1 = 3;//The field Order.text1 is not visible
order.methodDefault();
order.methodPublic();
//出了Order类之后,私有的结构就不可以调用了
//order.methodPrivate();//The method methodPrivate() from the type Order is not visible
}
}
来源:https://blog.csdn.net/fool_Java/article/details/126107957
标签:java,封装,权限,修饰符
0
投稿
猜你喜欢
C#实现在前端网页弹出警告对话框(alert)的方法
2022-02-17 11:05:12
Java简单高效实现分页功能
2022-05-24 13:56:02
c#获取相同概率随机数的算法代码
2022-09-07 21:18:13
C# dynamic关键字的使用方法
2023-02-26 08:40:01
Java ForkJoin框架的原理及用法
2022-03-13 05:26:51
Java技能点之SimpleDateFormat进行日期格式化问题
2023-09-09 01:50:26
深入理解Android MD5数据加密
2022-03-16 07:48:03
Unity3D获取当前键盘按键及Unity3D鼠标、键盘的基本操作
2023-06-01 18:01:45
javafx实现时钟效果
2022-09-10 02:23:31
Spring声明式事务和@Aspect的拦截顺序问题的解决
2023-07-18 12:10:46
Java关键字synchronized原理与锁的状态详解
2021-11-16 05:30:29
Java的运算符和程序逻辑控制你了解吗
2023-01-19 10:01:59
java 中死锁问题的实例详解
2022-08-18 02:22:39
springdata jpa使用Example快速实现动态查询功能
2022-12-01 21:49:08
C#使用Unity实现剪刀石头布游戏
2023-03-01 06:30:18
MyBatis在注解上使用动态SQL方式(@select使用if)
2023-09-24 06:52:55
C#中方法的详细介绍
2023-08-06 12:31:21
C#定义并实现单链表实例解析
2022-04-15 12:53:09
Java中lombok的@Builder注解的解析与简单使用详解
2022-12-29 06:44:55
Android实现View滑动效果的6种方法
2023-01-29 15:12:19