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基础巩固复习巩固语法练习-工具类的封装(14)
【8月更文挑战第10天】java基础巩固,工具类的封装
11 1
【前端学java】java基础巩固复习巩固语法练习-工具类的封装(14)
|
6天前
|
Java
Java 新手入门:Java 封装、继承、多态详解
Java 新手入门:Java 封装、继承、多态详解
16 1
|
11天前
|
Java 数据安全/隐私保护
09 Java面向对象三大特征(概述)
09 Java面向对象三大特征(概述)
30 4
|
1月前
|
测试技术 API Android开发
《手把手教你》系列基础篇(九十七)-java+ selenium自动化测试-框架设计篇-Selenium方法的二次封装和页面基类(详解教程)
【7月更文挑战第15天】这是关于自动化测试框架中Selenium API二次封装的教程总结。教程中介绍了如何设计一个支持不同浏览器测试的页面基类(BasePage),该基类包含了对Selenium方法的二次封装,如元素的输入、点击、清除等常用操作,以减少重复代码。此外,页面基类还提供了获取页面标题和URL的方法。
44 2
|
21天前
|
存储 机器学习/深度学习 人工智能
人工智能平台PAI使用问题之特征平台是否可以与Java进行对接
阿里云人工智能平台PAI是一个功能强大、易于使用的AI开发平台,旨在降低AI开发门槛,加速创新,助力企业和开发者高效构建、部署和管理人工智能应用。其中包含了一系列相互协同的产品与服务,共同构成一个完整的人工智能开发与应用生态系统。以下是对PAI产品使用合集的概述,涵盖数据处理、模型开发、训练加速、模型部署及管理等多个环节。
|
1月前
|
Java 编译器
Java面向对象(三)详解: 封装 | 继承 | 方法重写 | 抽象类
Java面向对象(三)详解: 封装 | 继承 | 方法重写 | 抽象类
|
2月前
|
Java
Java面向对象特征(二)----- 继承
Java面向对象特征(二)----- 继承
Java面向对象特征(二)----- 继承
|
1月前
|
Java
深入理解Java中的类与对象:封装、继承与多态
深入理解Java中的类与对象:封装、继承与多态
|
2月前
|
Java 数据安全/隐私保护
Java基础手册二(类和对象 对象创建和使用 面向对象封装性 构造方法与参数传递 this关键字 static关键字 继承 多态 方法覆盖 final关键字 访问控制权限修饰符)
Java基础手册二(类和对象 对象创建和使用 面向对象封装性 构造方法与参数传递 this关键字 static关键字 继承 多态 方法覆盖 final关键字 访问控制权限修饰符)
24 0
|
2月前
|
缓存 NoSQL Java
Redis系列学习文章分享---第四篇(Redis快速入门之Java客户端--商户查询缓存+更新+双写一致+穿透+雪崩+击穿+工具封装)
Redis系列学习文章分享---第四篇(Redis快速入门之Java客户端--商户查询缓存+更新+双写一致+穿透+雪崩+击穿+工具封装)
40 0