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

}

java封装及四种权限修饰符详解

 一下代码查看运行结果:

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
投稿

猜你喜欢

  • 详解Android Studio无法检测新版本问题解决

    2021-08-01 08:45:05
  • 详解使用SSM实现简单工作流系统之实现篇

    2021-10-21 07:49:23
  • 一篇文章带你入门java变量与类型

    2022-10-13 06:14:58
  • C#将PPT文件转换成PDF文件

    2022-09-08 20:33:21
  • c# split分隔字符串使用方法

    2023-04-12 18:00:54
  • SpringBoot集成Spring security JWT实现接口权限认证

    2023-02-02 07:31:08
  • Android编程实现的短信编辑器功能示例

    2022-09-08 12:58:44
  • Spring计划任务用法实例详解

    2021-08-03 11:41:08
  • Java后台线程操作示例【守护线程】

    2023-11-25 01:35:44
  • C#中线程同步对象的方法分析

    2021-06-06 05:43:46
  • Unity屏幕雪花另类实现方式示例

    2022-06-18 23:32:43
  • C#实现文件断点续传下载的方法

    2021-09-05 10:37:42
  • C#学习基础概念二十五问 11-15

    2022-04-18 04:19:00
  • java中如何获取相关参数

    2023-11-17 20:12:39
  • Java(基于Struts2) 分页实现代码

    2023-11-04 05:58:58
  • java Timer测试定时调用及固定时间执行代码示例

    2023-12-09 14:36:44
  • Android中的Launch Mode详情

    2022-10-06 02:38:09
  • Android webview旋转屏幕导致页面重新加载问题解决办法

    2021-10-18 17:07:35
  • Java 根据某个 key 加锁的实现方式

    2023-10-27 07:54:20
  • Android中创建对话框(确定取消对话框、单选对话框、多选对话框)实例代码

    2023-07-04 01:48:25
  • asp之家 软件编程 m.aspxhome.com