java面向对象 ——封装

类和对象之间的关系


类是事物的描述

  • 类是Java程序的核心,它定义了对象的形状和本质,可以用类来创建对象。当使用一个类创建了一 个对象时,通常说给出了这个类的一个实例
  • 类由类声明和类体构成,一般命名方法为:首字母大写,大写字母分词,例如XueSheng

class className {

        类体;

  • 类包含数据成员(数据、属性)和成员方法(函数)。一般建议数据成员应该是通过函数(方法)访问的
  • 对象是类的实例,就是应用中定义的某个类的变量,例如Person p=new Person(); p就是对象
  • 类是和问题域相关的具有相同属性和行为的对象的抽象;对象是该类事物的实例,在Java中通过 new来创建的 

基本规则

1、了解业务需求,查找具体的研究目标:对象

2、使用抽象的方法将具体的研究目标转换为新的数据类型定义:类 

//一个文件中可以定义无数个类,但是只能有一个public class,而且公共类的名称必须和文件名称
一致
public class Student {
//数据成员
    private Long id; //学生编号
    private String name;//姓名
    private double high;
    //成员方法
    public void 吃饭(){
        high+=0.1;
    }
}
class Teach{} //非公共类
public class Test1{
    public static void main(String[] args){
        Student s1=new Student();
        s1.吃饭();
    }
}

 封装


  • 在面向对象程式设计方法中,封装Encapsulation是指一种将抽象性函式接口的实现细节部分包装、隐藏 起来的方法。
  • 封装可以被认为是一个保护屏障,防止该类的代码和数据被外部类定义的代码随机访问

              反射机制

  • 要访问该类的代码和数据,必须通过严格的接口控制。
  • 封装最主要的功能在于能修改自己的实现代码,而不用修改那些调用代码的程序片段
  • 适当的封装可以让程式码更容易理解与维护,也加强了程式码的安全性。 

//第一步是确定研究的目标对象---可以区分的独立个体
// 需要方法和属性
class Student {
    //成员属性---静态特征的描述
    private boolean sex; //一般使用私有属性,共有的get/set方法
    //成员方法---提供的功能描述
    public boolean getSex(){
        return this.sex;
    }
    //不允许修改sex,所以不提供set方法
    protected void setSex(Boolean sex){ //如果在特殊情况下允许修改,可以使用范围限
//定词进行表示
        this.sex=sex;
    }
}
//构建对象
Student s1=new Student();
s1.setSex(true);
s1.setSex(false); //是否允许取绝于限制

  • 封装有三大好处

  • 良好的封装能够减少耦合
  • 类内部的结构可以自由修改
  • 可以对成员进行更精确的控制
  • 隐藏信息,实现细节

4个关键字

用于进行访问控制

//一个文件种可以定义无数个类,但是只能有一个public class公共类
public class Student { //类的范围限定词分为2种情况。外部类的范围限定词可以使用无范围
限定词和public两种;而内部类上可以使用4种范围限定
    //成员属性,类种包含哪些静态特征取决于问题本身
    private Long id; //private只能在当前类中直接访问
    protected String name; //protected可以在同包或者子类中直接访问
    int age;//没有范围限定词,默认或者package限定词,只能在同包中直接访问
    public double salary;//public到处可见
    //一般规则是私有属性,共有的get/set方法
}

类定义规则:要求类内高内聚,类间弱耦合

  • 封装确实可以使容易地修改类的内部实现,而无需修改使用了该类的客户代码 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值