java日常学习:封装及其使用
2017-10-28 14:30
225 查看
java代码段
java封装定义和使用
面向对象的语言三大特征:1. 封装
2. 继承
3. 多态
封装的步骤:
1. 使用private修饰需要被封装的属性。
2. 根据需求提供公共的方法set或者get方法获取以及设置该私有属性的值。
方法的命名规范:
set属性名 或者 get属性名
封装的好处:
1. 提高了数据的安全性。
2. 操作简单。
3. 隐藏了实现。
疑问1 :封装的应用场景?
如果一个属性不想被其他人直接的访问,那么这时候就可以使用封装。
现实开发中的实体类的成员属性(成员变量)一般我们都会封装起来。
实体类:用于描述一类事物的类则称作为实体类。 比如: class Car{ } class Student
疑问2:封装一定需要提供get方法和set方法吗?
不一定,看使用这个类的人需要需要使用到(看需求).
权限修饰符: 权限修饰符就是用于控制变量或者方法的可见范围。
public : 公共, public 修饰的变量或者方法可以在任何范围内可见。
private : 私有的, private 修饰的变量或者是方法只能在本类中可见。
/* 问题:出现了性别错乱的问题。 需求: 使用java类描述一个网站的会员。 */ //创建一个会员类; class Member{ public String userName; //用户名; private String sex; // 性别; private int age; //年龄; public int salary; //收入; //提供一个公共的方法设置性别; public void setSex(String s){ if(s.equals("男")||s.equals("女")){ sex = s; }else{ //默认是男; sex = "男"; } } //提供一个公共方法获取性别; public String getSex(){ return sex; } public void meet(){ System.out.println("姓名:"+ userName+ " 性别:"+ sex+" 收入:"+ salary); } } class demo1 { public static void main(String[] args) { Member m = new Member(); //给会员赋予属性值; m.userName = "狗娃"; m.setSex("女"); m.salary = 10000; System.out.println("姓名:"+ m.userName+ " 性别:"+ m.getSex()+" 收入:"+ m.salary); } }
java封装练习:简单计算器
/* 需求:使用java类描述一个计算器,计算器具备 的公共属性: 操作数1 、操作数2 、 运算符. 公共的功能:运算。 要求: 计算器的属性需要封装起来,不能直接对计算器的属性赋值。 */ //创建一个计算器类; class Caculator { private int num1; //操作数num1; private int num2; //操作数num2; private char option; //操作运算符; //提供公共的方法设置计算器的属性(此处是偷懒的做法,理应set然后get); public void init(int n1,int n2,char o){ if (o=='+'||o=='-'||o=='*'||o=='/'){ option = o; }else{ System.out.println("智障输入错误"); } num1 = n1; num2 = n2; } //运算的功能; public void caculate(){ switch (option){ case '+': System.out.println("加法运算:结果是"+(num1+num2)); break; case '-': System.out.println("减法运算:结果是"+(num1-num2)); break; case '*': System.out.println("乘法运算:结果是"+(num1*num2)); break; case '/': System.out.println("除法运算:结果是"+(num1/num2)); break; } } } class demo2 { public static void main(String[] args) { //创建计算器对象; Caculator c=new Caculator(); //设置计算器的属性值; c.init(14,13,'+'); //调用计算器的计算功能; c.caculate(); } }
总结:封装常用于那些不想让别人自己随意修改和输入的地方。
第一步:要设置set方法,方法里就是不想随意修改的判断条件。例如:public void setSex(String s){ if(s.equals("男")||s.equals("女")){ sex = s; }else{ //默认是男; sex = "男"; } }
第二步:调用get方法,由于下面main方法中要输出封装的内容,但是不能直接调用,所以要加上get方法来返回需要调用的值,例如:
public String get 9452 Sex(){ return sex; }
说明:在编写简易计算器的程序中,由于笔者前面阶段一直用记事本来编写程序,打牢基础,但是效率低下,所以封装属性之后没有set和get,直接public使用了封装的属性,不太严谨!
用于平时自己复习回顾,如有错误,欢迎指正
相关文章推荐
- java日常学习:练习作业Frame(QQ登录界面)、按钮及其添加颜色
- java日常学习:StringBuffer常见使用方法
- Java的Jackson库的使用及其树模型的入门学习教程
- Java日志 - log4简单使用实例及其再次封装
- Java开发工具使用及其快捷键和常见对象+JAVA学习笔记-DAY11
- JAVA学习第七课(封装及其思想)
- [Java学习]使用digester 解析xml配置文件
- 学习在Java中使用嵌入式数据库Derby
- 2006-05-30 学习使用java.util.logging.Logger类(纪念屈原吧)
- 计算Java日期--学习怎样创建和使用日期
- java学习笔记(四)----对象、数组作为参数传递,静态变量、静态方法的使用,内部类,使用文档注释
- 计算Java日期--学习怎样创建和使用日期
- Eclipse plugins 插件开发学习 - 使用 IScanner 扫描 Java 源代码
- java学习笔记_使用浮点数和小数中的技巧和陷阱
- 计算Java日期--学习怎样创建和使用日期(1)
- Java中的String、StringBuffer和Math类--学习java语言及其网络应用总结
- 学习使用java的一点体会
- Java中封装配置文件(1)-使用Properties
- 使用 AppFuse 的七个理由--学习 Java 开放源码工具 —— 并使用这些工具提高生产效率
- 我学习使用java的一点体会(5)