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
Java基础_0303:封装性初步的更多相关文章
- 【Demo 0004】Java基础-类封装性
本章学习要点: 1. Java封装特性; 2. 掌握类的定义: 3. 掌握类的调用方法; 一.封装特性 Java 纯面向对象语言,面向对象语言遵 ...
- Java面向对象(封装性概论)
Java面向对象(封装性概论) 知识概要: (1)面向对象概念 (2)类与对象的关系 (3)封装 (4)构造函数 (5)this关键字 (6)static关键 ...
- java面向对象之封装性
面向对象的特征之一:封装和隐藏: 一.问题的引入: 当创建一个类的对象以后,可以通过“对象.属性”的方式,对对象的属性进行赋值.这里,赋值操作要受属性的数据类型和存储范围的制约.除此之外,没有其他制约 ...
- Java基础之封装
封装(Encapsulation)是java面向对象的三大特性,之前学java迷迷糊糊,一直也没弄清楚什么是封装以及为什么要封装,直到这次看书才有一种被点醒的感觉. java中的封装是针对某个类而言的 ...
- 九、Java基础---------面向对象封装、继承、多态
封装 1.1 基本概念 封装(encapsulation)是面向对象三大特征之一,它是指将对象的状态信心隐藏在对象的内部,不允许外部直接进行访问,而是通过该类提供的方法来实现对内部信息的操作和访问. ...
- Java基础教程——封装
面向对象的三大特征 封装:encapsulation 继承:inheritance 多态:polymorphism 封装 类是一个最基本的封装 封装的好处: 数据安全:保证数据安全 方便调用:提供清晰 ...
- Java基础04 封装与接口
作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明.谢谢! 总结之前的内容,对象(object)指代某一事物,类(class)指代象的类型.对 ...
- Java基础04 封装与接口(转载)
数据成员和方法都是同时开放给内部和外部的.在对象内部,我们利用this来调用对象的数据成员和方法.在对象外部,比如当我们在另一个类中调用对象的时,可以使用 对象.数据成员 和 对象.方法() 来调用对 ...
- java基础(11)--封装
一.java面向对象三大特别: 1.封装 2.继承 3.多态 二.封装的作用 1.属性私有化(private) 2.对外提供简单的入口 如公开的set()与get()方法,并且都不带static ...
随机推荐
- 第二十五篇-Android 应用资源
这里介绍android的一些资源文件. 以一个登录界面为例. layout.xml <?xml version="1.0" encoding="utf-8" ...
- R语言实现两文件对应行列字符替换(解决正负链统一的问题)
假设存在文件file1.xlsx,其内容如下: 存在文件file2.xlsx,其内容如下: 现在我想从第七列开始,将file2所有的字符替换成file1一样的,即第七.八.九.十列不需要改变,因为fi ...
- Linux列字符替换
假如存在file1.txt,其内容如下: aa bb cc dd ee ff gg hh 现将第一列(aa 和 ee)统一修改为mm 则需要输入命令行: awk '{$1="mm" ...
- 微信小程序:分页和加载更多
直接上代码吧.不足之处,多多指教,一起进步 1.wxml页面的最后敲上,css自己定义 <view class="loadmore" mtype="{{mtype} ...
- docker的使用 -- windows
1. 下载docker desktop https://www.docker.com/products/docker-desktop 更多操作指令 ps: 值得注意的是,刚下载下来的docker只能在 ...
- docker-compose 案例
官网示例: 安装wordpress version: " services: db: image: mysql:5.7 volumes: - db_data:/var/lib/mysql r ...
- MySQL入门介绍(mysql-8.0.13)
MySQL入门介绍(mysql-8.0.13单机部署) 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.MySQL数据库介绍 1>.MySQL是一种开放源代码的关系型数据库 ...
- 网络设备监控-Catic添加H3C的监控图解
网络设备监控-Catic添加H3C的监控图解 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 首先,我要声明满足2个条件才能作本篇笔记的操作:第一:你得有台cacti服务器,第二 ...
- oracle数据库的简单操作
本操作是在oracle的11g版本中的操作 一.数据库登录操作: 如果是在服务器上登录oracle,需要先切换到oracle用户再进行登录 #切换到oracle用户 su - oracle #登录or ...
- 【.net】未能加载文件或程序集“System.Web.Mvc, Version=5.2.2.0
#车祸现场 未能加载文件或程序集“System.Web.Mvc, Version=5.2.2.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35”或 ...