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

猜你喜欢

  • 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
  • asp之家 软件编程 m.aspxhome.com