Java基础_0303:封装性初步

本文通过创建一个Java图书类,演示了如何使用setter和getter方法实现封装。文章详细介绍了私有变量title和price的设置与获取过程,并展示了如何验证价格的有效性。
class Book {            // 定义一个新的类
    private String title;       // 书的名字
    private double price;       // 书的价格
    public void getInfo() {             // 此方法将由对象调用
        System.out.println("图书名称:" + title + ",价格:" + price);
    }
} 
public class TestDemo {
    public static void main(String args[]) {
        Book book = new Book();     // 声明并实例化对象
        book.title = "Java开发";      // 设置属性内容
        book.price = -89.9;         // 设置属性内容
        book.getInfo();         // 调用方法
    }
}

程序编译结果:
TestDemo.java:12: 错误: title可以在Book中访问private
                book.title = "Java开发";                // 设置属性内容
                    ^
TestDemo.java:13: 错误: price可以在Book中访问private
                book.price = -89.9;                     // 设置属性内容
                    ^
2 个错误
封装使用

在开发之中,针对于属性有这样一种定义:所有在类中定义的属性都要求使用private声明,如果属性需要被外部所使用,那么按照要求定义相应的setter、getter方法,以String title为例。

  • setter方法主要是设置内容,public void setTitle(String t),有参;
  • getter方法主要是取得属性内容:public String getTitle()。无参
package com.xusan;

class Book {                    // 定义一个新的类
    private String title;       // 书的名字
    private double price;       // 书的价格
    /**
     * 设置或修改title属性内容
     * @param t 接收要设置的数据
     */
    public void setTitle(String t) {    // 设置title属性内容
        title = t;
    }
    /**
     * 设置或修改price属性内容
     * @param p 接收要设置的数据
     */
    public void setPrice(double p) {    // 设置price属性内容
        if (p > 0.0) {      // 进行数据验证
            price = p ;
        }
    }
    /**
     * 取得title属性内容
     * @return title属性数据
     */
    public String getTitle() {  // 取得title属性内容
        return title;
    }
    /**
     * 取得price属性内容
     * @return price属性数据
     */
    public double getPrice() {  // 取得price属性内容
        return price;
    }
    /**
     * 输出对象完整信息
     */
    public void getInfo() {                 // 此方法将由对象调用
        System.out.println("图书名称:" + title + ",价格:" + price);
    }
} 
public class TestDemo {
    public static void main(String args[]) {
        Book book = new Book();     // 声明并实例化对象
        book.setTitle("Java开发");        // 设置属性内容
        book.setPrice(-89.9);           // 设置属性内容
        book.getInfo();         // 调用方法
    }
}

程序执行结果:
图书名称:Java开发,价格:0.0

转载于:https://www.cnblogs.com/xuwei1/p/8339823.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值