Java封装——访问修饰符

简介: Java封装——访问修饰符

一、作用及种类

UML类图
建模语言或标准建模语言
类的属性、操作中的可见性使用+、#、-分别表示public、protected、private

作用:信息隐藏
防止用户意外修改数据,使模块易于维护和使用
有哪些修饰符呢?
private:只有该类可以访问
protected:该类及其子类的成员可以访问,同一个包中的类也可以访问
public:该类或非该类可以访问
默认:同一个包中的类可以访问

可以作用于类,成员,方法

二、深度理解

同一个类
就是同一个类里面的,类相当于结构体
同一个包
圈中的就是包

三、代码理解

属性封装

class Student{//class 相当于c语言的struct

int age;
String name;
double score;
private int sex;        //不同类,无法访问这个成员
public void cs(int a){  
    sex = a;
}
void introduce(){
    System.out.println("sex="+sex+",age="+ age +",name=" + name + ",score=" + score);
}
void testFunc(){
    System.out.println("testFunc");
}

}
public class Test {

public static void main(String[] args) {
    Student stu1 = new Student();
    //stu1.sex = 1;     因为类里面使用了private,不同类就无法访问
    stu1.cs(0);            //可以使用方法,间接修改成员
    stu1.age = 22;
    stu1.name = "xiaowei";
    stu1.score = 100;
    stu1.introduce();
    stu1.testFunc();
}

}

/*
sex=0,age=22,name=xiaowei,score=100.0
testFunc
*/

方法封装

class Student{//class 相当于c语言的struct

private int age;
String name;
double score;
private int sex;

private void myage(int myage){    //不可见的方法,可以在别的方法中使用达到更改属性的目的
    age = myage;
}
public void setage(int realage){    //更改age
    age = realage;
}
public int getage(){    //输出age,方法里偷偷使用myage,输出永远是18
    myage(18);
    return age;
}

void cs(int a){
    sex = a;
}
void introduce(){
    System.out.println("sex="+sex+",age="+ age +",name=" + name + ",score=" + score);
}
void testFunc(){
    System.out.println("testFunc");
}

}
public class Test {

public static void main(String[] args) {
    Student stu1 = new Student();
    //stu1.sex = 1;
    stu1.cs(0);
    //stu1.age = 22;
    stu1.setage(36);    //更改年龄36
    stu1.name = "xiaowei";
    stu1.score = 100;
    stu1.introduce();
    stu1.testFunc();
    System.out.println("age="+stu1.getage());    //输出年龄是18,方法中偷偷调用了不可见的方法myage
}

}

/*
sex=0,age=36,name=xiaowei,score=100.0
testFunc
age=18
*/

目录
相关文章
|
9天前
|
安全 Java 编译器
Java的封装详解
封装和多态是面向对象编程(OOP)的重要概念。封装通过私有属性和公共方法实现数据隐藏和保护,使类的内部细节对外部不可见;多态则通过方法重载和重写实现同一方法在不同对象上的不同表现形式,增强了代码的灵活性和可维护性。两者结合使用,可以使Java程序更加安全、灵活且易于维护。
|
9天前
|
Java
Java的封装详解
封装是Java中实现数据隐藏和保护的核心机制。它通过将对象的状态和行为结合并限制外部直接访问,确保类的内部细节对外不可见,仅能通过公共方法访问和修改对象状态。封装带来了数据隐藏、提高代码可维护性和增强安全性等好处。在Java中,封装主要通过将属性设为私有并提供getter和setter方法来实现。这种方式不仅保护了数据完整性,还允许在修改类内部实现时不影响外部代码,从而提升程序的健壮性和可读性。
|
6天前
|
SQL Java 编译器
Java——类与对象(封装)
封装是面向对象编程中的概念,指将数据(属性)和相关操作(方法)组合成独立单元(类),使外部无法直接访问对象的内部状态,只能通过提供的方法进行交互,从而保护数据安全。例如,手机将各种组件封装起来,只暴露必要的接口供外部使用。实现封装时,使用`private`关键字修饰成员变量,并提供`get`和`set`方法进行访问和修改。此外,介绍了包的概念、导入包的方式及其注意事项,以及`static`关键字的使用,包括静态变量和方法的初始化与代码块的加载顺序。
18 10
Java——类与对象(封装)
|
7天前
|
SQL JavaScript 前端开发
基于Java访问Hive的JUnit5测试代码实现
根据《用Java、Python来开发Hive应用》一文,建立了使用Java、来开发Hive应用的方法,产生的代码如下
27 6
|
7天前
|
NoSQL JavaScript Java
Java Python访问MongoDB
Java Python访问MongoDB
14 4
|
1月前
|
安全 Java
Java基础面试十四】、 封装的目的是什么,为什么要有封装?
这篇文章讨论了封装在面向对象编程中的目的,强调封装可以隐藏类的实现细节,通过方法控制对数据的访问,保证数据完整性,并提高代码的可维护性。
Java基础面试十四】、 封装的目的是什么,为什么要有封装?
|
1月前
|
Java
【Java基础面试三】、说一说你对Java访问权限的了解
这篇文章介绍了Java中的四种访问权限:private、default(无修饰符时的访问权限)、protected和public,以及它们分别在修饰成员变量/方法和类时的不同访问级别和规则。
【Java基础面试三】、说一说你对Java访问权限的了解
|
22天前
|
算法 Java 测试技术
java 访问ingress https报错javax.net.ssl.SSLHandshakeException: Received fatal alert: protocol_version
java 访问ingress https报错javax.net.ssl.SSLHandshakeException: Received fatal alert: protocol_version
|
23天前
|
存储 Java 数据库
Java封装
Java封装
17 1
|
26天前
|
Java 开发工具
【Azure Developer】Java代码访问Key Vault Secret时候的认证问题,使用 DefaultAzureCredentialBuilder 或者 ClientSecretCredentialBuilder
【Azure Developer】Java代码访问Key Vault Secret时候的认证问题,使用 DefaultAzureCredentialBuilder 或者 ClientSecretCredentialBuilder