java三大特征之封装

简介: java三大特征之封装

封装


即隐藏对象的属性和实现细节,仅对外公开接口,控制在程序中属性的读和修改的访问级别,
将抽象得到的数据和行为(或功能)相结合,形成一个有机的整体,也就是将数据与操作
数据的源代码进行有机的结合,形成“类”,其中数据和函数都是类的成员。在电子方面,封
装是指把硅片 上的电路管脚,用导线接引到外部接头处,以便与其它器件连接。


封装


将成员变量进行私有化,就不能直接访问,只能通过对外的公共(public) 访问    方法修饰
被private修饰的成员变量/成员方法只能在本类中访问!


本来我们可以直接调用,但是这样不好,所以java里面就直接 将成员变量进行私有化,就不能直接访问,只能通过对外的公共(public) 访问 方法修饰

被private修饰的成员变量/成员方法只能在本类中访问!

封装前:

class Student{
  String name ; // 姓名
  private int age ;     //年龄
  //将成员变量输出
  public void show(){
    System.out.println(name+"----,"+age) ;
  } 
}
class StudentDemo{
  public static void main(String[] args){
    //创建一个学生类的具体对象
    Student s1 = new Student() ;
    //给成员变量赋值:对象名.成员变量
    s1.name = "张三" ;
     //访问了私有成员
    //s1.age = 27 ;
    s1.show();
  }
}


封装后

class Student2{
  //成员变量
  //姓名
  private String name ;  
  //性别
  private String gender ;
  //年龄
  private int age ;
  //学号
  private String id;
  //提供对外的公共访问方法:seXXX()/getXXX()
  //给name设置
  public void setName(String n) { //n 局部变量
    name = n ;
  }
  //获取年龄的值
  public String getName(){
    return name ;
  }
  //性别的设置和获取
  public void setGender(String g){
    gender = g ;
  }
  public String getGender(){
    return gender ;
  }
  //年龄
  public void setAge(int a){
    age = a ;
  }
  public int getAge(){
    return age ;
  }
  //id学号
  public void setId(String i){
    id = i ;
  }
  public String getId(){
    return id ;
  }
  //定义成员方法:显示成员变量
  public void show(){
    System.out.println("姓名是:"+name+",她的年龄是:"+age+",性别是: "+gender+",她的学号是:"+id) ;
  }
}
//测试类
class StudentTest{
  public static void main(String[] args){
    //需求: 给学生事物的具体对象的成员变量进行赋值
    //创建学生对象
    Student2 s = new Student2() ;
    //私有的成员不能访问
    //s.name = "张三" ;
    //s.age = 18 ;
    //给name赋值
    s.setName("张三") ;
    s.setGender("男") ;
    s.setAge(18) ;
    s.setId("9527") ;
    //姓名是:高圆圆,她的年龄是:38,性别是: 女,她的学号是:9527
    s.show() ;
    System.out.println("--------------------------");
    System.out.println(s.getName()+"----"+s.getGender()+"----"+s.getAge()+"-----"+s.getId());
  }
}



我们可以只关注于使用,而不关心具体的实现


目录
相关文章
|
6月前
|
Java 数据库连接 数据库
Java 组件详细使用方法与封装实战指南
本指南详解Java核心组件使用与封装技巧,涵盖跨平台开发、面向对象编程、多线程、数据库操作等关键内容,并提供工具类、连接池、异常及响应结果的封装方法。结合Spring框架、MyBatis、Spring Boot等主流技术,助你掌握高质量Java组件设计与开发实践。
207 2
|
9月前
|
人工智能 JSON Java
列表结构与树结构转换分析与工具类封装(java版)
本文介绍了将线性列表转换为树形结构的实现方法及工具类封装。核心思路是先获取所有根节点,将其余节点作为子节点,通过递归构建每个根节点的子节点。关键在于节点需包含 `id`、`parentId` 和 `children` 三个属性。文中提供了两种封装方式:一是基于基类 `BaseTree` 的通用工具类,二是使用函数式接口实现更灵活的方式。推荐使用后者,因其避免了继承限制,更具扩展性。代码示例中使用了 Jackson 库进行 JSON 格式化输出,便于结果展示。最后总结指出,理解原理是进一步优化和封装的基础。
286 0
|
10月前
|
安全 Java 开发者
【JAVA】封装多线程原理
Java 中的多线程封装旨在简化使用、提高安全性和增强可维护性。通过抽象和隐藏底层细节,提供简洁接口。常见封装方式包括基于 Runnable 和 Callable 接口的任务封装,以及线程池的封装。Runnable 适用于无返回值任务,Callable 支持有返回值任务。线程池(如 ExecutorService)则用于管理和复用线程,减少性能开销。示例代码展示了如何实现这些封装,使多线程编程更加高效和安全。
|
10月前
|
安全 网络协议 Java
Java网络编程封装
Java网络编程封装原理旨在隐藏底层通信细节,提供简洁、安全的高层接口。通过简化开发、提高安全性和增强可维护性,封装使开发者能更高效地进行网络应用开发。常见的封装层次包括套接字层(如Socket和ServerSocket类),以及更高层次的HTTP请求封装(如RestTemplate)。示例代码展示了如何使用RestTemplate简化HTTP请求的发送与处理,确保代码清晰易维护。
|
11月前
|
Java
Java 面向对象编程的三大法宝:封装、继承与多态
本文介绍了Java面向对象编程中的三大核心概念:封装、继承和多态。
555 15
|
JavaScript 前端开发 Java
还不明白面向对象? 本文带你彻底搞懂面向对象的三大特征(2024年11月Java版)
欢迎来到我的博客,我是瑞雨溪,一名热爱JavaScript和Vue的大一学生。如果你从我的文章中受益,欢迎关注我,我将持续更新更多优质内容。你的支持是我前进的动力!🎉🎉🎉
129 0
还不明白面向对象? 本文带你彻底搞懂面向对象的三大特征(2024年11月Java版)
|
SQL 安全 Java
JAVA代码审计SAST工具使用与漏洞特征
JAVA代码审计SAST工具使用与漏洞特征
592 2
|
SQL 安全 Java
JAVA代码审计SAST工具使用与漏洞特征
JAVA代码审计SAST工具使用与漏洞特征
615 1