Java-5 封装

文章详细介绍了Java中的封装概念,包括通过private、protected和默认(包访问权限)来实现封装。private限制了属性和方法在类外部的访问,而protected在继承中起作用。未声明访问修饰符的成员具有包访问权限,只允许在同包内访问。文章还讨论了包的管理和导入,以及处理包内类冲突的方法。
摘要由CSDN通过智能技术生成

 

一、封装 

1、定义:对类的实现细节进行隐藏,对外只提供公开的方法供你使用,实现对数据的安全性

2、实现封装:

     通过类和访问权限来实现封装:类可以将数据以及封装数据的方法结合在一起,而访问权限用来控制字段/方法能否直接在类外使用

3、访问修饰限定符

(1)private:只能在当前类中访问

(2)public:哪里都能访问

(3)protected:受保护的(在继承中会了解)

(4)什么都不写

      class Student{

                int age;  //默认的:包访问权限

       }

 

二、private实现封装

1、被private修饰的只能在当前类中访问

2、如何让另一个类拿到被private修饰的属性和方法呢? 

class Preson{
    private String name; //被private修饰的属性
    public int age;
    private void sleep(){ //被private修饰的方法
        System.out.println(this.name + "正在睡觉");
    }
    public void setName(String name){
        this.name = name;
    }
    public void func(){ 
        this.sleep(); //使用被public修饰的func()方法,让其他类调用sleep()方法
    }
}
public class TestDemo {
    public static void main(String[] args) {
        Preson preson = new Preson();
        preson.setName("张三"); //访问name
        preson.func();//访问sleep()方法
    }
}

 

三、protected实现封装

需要了解继承后,才能理解

参考链接:可以参考Java-6 封装 

四、包访问权限实现封装

当方法/属性前面什么都不写,就实现了包访问权限

1、什么是包

为了更好的管理类,把多个类放在一起成为一组,称为软件包,类似于文件夹。

在同一个工程中,允许存在相同名称的类,只要处在不同的包中即可

2、导入Java中自带的包

(1)放在哪

 (2)举例:java.util 包,Java中不能直接导入包,需要说明导入包中的哪个类

java.util.*表示导入util包下的所有类,具体用到哪个,再加载哪个

 3、包中的类冲突

 解决方法:指定导入哪个包

import java.util.Date;
import java.sql.Date;
public class Test {
    public static void main(String[] args) {
        int[] array = {1,2,3};
        java.util.Date date= new java.util.Date(); //指定导入util包
    }
}

4、导入自定义包

(1)新建自定义包:src -> 新建 -> 包

(2)导入自定义包 

 

5、包访问权限

demo1包

package com.bit.demo1;
public class TestDemo1 {
    int a = 100; //包访问权限,只能在demo1包下访问
    public static void main(String[] args) {
        TestDemo1 demo1 = new TestDemo1();
        System.out.println(demo1.a);//可以调用a
    }
}

 demo2包

package com.bit.demo2;

import com.bit.demo1.TestDemo1;

public class TestDemo2 {
    public static void main(String[] args) {
        TestDemo1 demo2 = new TestDemo1();
        System.out.println(demo2.a); //报错,不能使用a
    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值