Java基础_0303:封装性初步

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

posted @ 2018-01-24 07:55  一粒飞鸿  阅读(154)  评论(0编辑  收藏  举报