java面向对象——封装(Encapsulation)

封装

封装:
   即一种将抽象性函式接口的实现细节部分隐藏(在方法中提供相应的对象、对象相关数据及对应行为)起来的一种包装方法。
作用:
   封装可以保护该方法中的对象及数据,防止被外部类定义的代码随机访问。
优点 :
   1. 使代码模块化
   2. 实现类内部自由修改
   3. 能提高代码的复用性
   4. 隐藏实现细节及内部数据,提高代码安全性
封装:方法封装、属性封装、类的封装、组件封装、模块化封装、系统级封装等

类:
   类是对现实生活中一类具有共同属性和行为的事物的抽象集合(如手机,动物)
   类是java编程的基本组成单位

java类的数据类型及功能:
   1. 类是引用型数据类型
   2. 类简化了开发者对程序的维护和修改
   3. 类使程序开发模块化
   4. 一个简单类包含成员变量及成员方法
对象: 是能够看得到摸得着的真实存在的实体

private关键字

private关键字
  一个权限修饰符
  修饰成员(成员变量和成员方法)
private关键字作用:保护成员不被别的类使用,被private修饰的成员只在本类中才能访问

this关键字

当局部变量与成员变量相同(数据类型和变量名)时,局部变量要用this关键字修饰(以区分成员变量与局部变量)

① this指代成员变量
② 解决局部变量隐藏成员变量
③ 代表所在类的对象引用

注:方法的形参没有与成员变量同名时,不带this修饰的变量指的是成员变量

  • 类是对象的抽象
  • 对象是类的实体

方法构造

public class类名{
   ⁄⁄ 成员变量
   变量1的数据类型变量1;
   变量2的数据类型变量2;
   ⁄⁄ 成员方法
   方法1;
   方法2;
   }

标准类制作

①成员变量
  使用private修饰
②构造方法
  手动提供一个无参构造方法
  提供一个带多个参数的构造方法
③成员方法
  给每一个成员变量一个setXxx(getXxx)及显示对象信息的show0方法

构造类——封装相应的数据
// 标准类
public class EntirMethod {
    // 成员变量
    private String brand;
    private int num;
    private double price;

    // 构造方法(手动无参)
    public EntirMethod() {

    }

    // 有参
    public EntirMethod(String brand, int num, double price) {
        this.brand = brand;
        this.num = num;
        this.price = price;
    }

    // 提供变量应对方法
    public void setBrand(String brand) {
        this.brand = brand;
    }

    public String getBrand() {
        return brand;
    }

    public void setNum(int num) {
        this.num = num;
    }

    public int getNum() {
        return num;
    }

    public void setPrice(double prince) {
        this.price = prince;
    }

    public double getPrice() {
        return price;
    }

    // 提供show方法
    public void show() {
        System.out.println(brand + "@牌," + num + "部,单部售价" + price + "元");
    }
}
测试类
public class Demo17_EntirCreateMethod {
    public static void main(String[] args) {
        // 1. 无参构造
        EntirMethod e = new EntirMethod();
        e.setBrand("华为");
        e.setNum(50000);
        e.setPrice(4899.98);
        e.show();

        // 直接创建
        EntirMethod e1 = new EntirMethod("小米", 6000, 3266.98);
        e1.show();

    }
}
  • 运行结果
华为@牌,50000部,单部售价4899.98元
小米@牌,6000部,单部售价3266.98元
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

一半不眠次日si记

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值