• 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
    
    
  • 相关阅读:
    【NOIP2018】游记
    题解 P1441 【砝码称重】
    题解 P3128 【[USACO15DEC]最大流Max Flow】
    题解 P1949 【聪明的打字员_NOI导刊2011提高(10)】
    题解 P1966 【火柴排队】
    题解 P1895 【数字序列】
    topcoder做题
    1149E
    hdu 6589
    hdu 6579
  • 原文地址:https://www.cnblogs.com/xuwei1/p/8339823.html
Copyright © 2020-2023  润新知