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

Java基础_0303:封装性初步的更多相关文章

  1. 【Demo 0004】Java基础-类封装性

    本章学习要点:       1.  Java封装特性;       2.  掌握类的定义:       3.  掌握类的调用方法; 一.封装特性        Java 纯面向对象语言,面向对象语言遵 ...

  2. Java面向对象(封装性概论)

     Java面向对象(封装性概论) 知识概要:                   (1)面向对象概念 (2)类与对象的关系 (3)封装 (4)构造函数 (5)this关键字 (6)static关键 ...

  3. java面向对象之封装性

    面向对象的特征之一:封装和隐藏: 一.问题的引入: 当创建一个类的对象以后,可以通过“对象.属性”的方式,对对象的属性进行赋值.这里,赋值操作要受属性的数据类型和存储范围的制约.除此之外,没有其他制约 ...

  4. Java基础之封装

    封装(Encapsulation)是java面向对象的三大特性,之前学java迷迷糊糊,一直也没弄清楚什么是封装以及为什么要封装,直到这次看书才有一种被点醒的感觉. java中的封装是针对某个类而言的 ...

  5. 九、Java基础---------面向对象封装、继承、多态

    封装 1.1 基本概念  封装(encapsulation)是面向对象三大特征之一,它是指将对象的状态信心隐藏在对象的内部,不允许外部直接进行访问,而是通过该类提供的方法来实现对内部信息的操作和访问. ...

  6. Java基础教程——封装

    面向对象的三大特征 封装:encapsulation 继承:inheritance 多态:polymorphism 封装 类是一个最基本的封装 封装的好处: 数据安全:保证数据安全 方便调用:提供清晰 ...

  7. Java基础04 封装与接口

    作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明.谢谢! 总结之前的内容,对象(object)指代某一事物,类(class)指代象的类型.对 ...

  8. Java基础04 封装与接口(转载)

    数据成员和方法都是同时开放给内部和外部的.在对象内部,我们利用this来调用对象的数据成员和方法.在对象外部,比如当我们在另一个类中调用对象的时,可以使用 对象.数据成员 和 对象.方法() 来调用对 ...

  9. java基础(11)--封装

    一.java面向对象三大特别: 1.封装 2.继承 3.多态   二.封装的作用 1.属性私有化(private) 2.对外提供简单的入口 如公开的set()与get()方法,并且都不带static ...

随机推荐

  1. [luogu1970][花匠]

    题目地址 https://www.luogu.org/problemnew/show/P1970 题目描述 花匠栋栋种了一排花,每株花都有自己的高度.花儿越长越大,也越来越挤.栋栋决定 把这排中的一部 ...

  2. 关于react-native在MacBookPro环境下的安装

    都说欲善其事,必先利其器. 使用macbook写react-native 环境真的非常容易配置 先看效果 然后我们看安装需要的东西 brew install node brew install wat ...

  3. 记录EXCEL格式和TXT文本格式之间的互转

    EXCEL格式转变成TXT文本格式 1.打开execl文档,点击文件另存为 2.选择txt保存 3.重命名文档,打开该txt文档 4.按Ctrl+H,将文档中空格转换成其他分割符,单击确定 TXT格式 ...

  4. GWAS研究可利用的数据库(持续更新)

    1.列表包括数据库名称.表型.是否能下载到基因型(genotype).是否能下载到GWAS结果文件(P值.效应值.SNP位点).目前收集到的有如下: 参考到这些数据库的文献:Genome-wide a ...

  5. ElasticSearch6.5.0 【script_lang not supported】

    执行代码:[就是想根据条件更新]把品牌为LiNing的都改成Cat. UpdateByQueryRequestBuilder updateByQuery = UpdateByQueryAction.I ...

  6. redis4.0.6集群搭建

    文件环境:CentOS7 + redis4.0.6 先去官网下载redis:https://redis.io/,然后上传到你的虚拟机,我上传到了/mysoft 先解压->然后进入主目录-> ...

  7. jmeter-实用插件

    1.官网下载插件管理工具 https://jmeter-plugins.org/downloads/all/ 2.将jar包放在jmeter的 lib/ext文件夹下 3.重启jmeter 4.点击“ ...

  8. 数据库 价格字段 设置 decimal(8,2),价格为100W,只显示999999.99

    DECIMAL(M,D),M是数字最大位数,D是小数点右侧数字个数,整数M-D位 decimal(8,2)数值范围是 -999999.99 ~ 999999.99 1000000超过了6位,严格模式下 ...

  9. FineUILearning

    一:表单控件的学习: 1(1) <f:PageManager > 将对象引用设置到对象的实例,否则页面无法显示: (2)<Menu></Menu>就是下拉菜单控件 ...

  10. maven编译或者打包web项目显示“软件包 javax.servlet.http 不存在"

    2.解决办法: 这是由于缺少servlet-api.jar包,其实tomcat下有,但是在java build path把他加载过来,还是报这个错误,所以我们直接在pom.xml里面加入这个jar包即 ...