java新手笔记9 类的封装示例
1.bank类
package com.yfs.javase;
//类封装
public class BankCard { //属性
int balance;//默认0 实例变量 分配给每个对象一个
//String name; // 方法 存钱
public void saveMoney(int money) {
if(money < 0) {
System.out.println("非法操作...");
return;
}
System.out.println("向账户存入" + money +"元...");
balance += money;
} //取钱 调用时传入参数
public void drawMoney(int money) {
//验证余额
if(balance < money) {
System.out.println("账户余额不足...");
return; //终止方法调用
} System.out.println("从账户取出" + money + "元...");
balance -= money;
} }
2.测试
package com.yfs.javase;
public class CardTest {
public static void main(String[] args) {
// BankCard bc1 = null;//声明引用
// bc1 = new BankCard();//创建对象
BankCard bc1 = new BankCard();
System.out.println("银行卡余额:" + bc1.balance);
bc1.drawMoney(200);//调用对象方法
bc1.saveMoney(5000);
bc1.drawMoney(500000);
bc1.drawMoney(500);
bc1.saveMoney(-500);
System.out.println("银行卡余额:" + bc1.balance);
}
}
3.测试1
package com.yfs.javase;
public class CardTest2 {
public static void main(String[] args) {
BankCard bc1 = new BankCard();
System.out.println("银行卡余额:" + bc1.balance);
bc1.saveMoney(5000);
bc1.drawMoney(500);
System.out.println("银行卡余额:" + bc1.balance);
BankCard bc2 = new BankCard();
System.out.println("银行卡余额:" + bc2.balance);
bc2.saveMoney(3000);
System.out.println("bc2银行卡余额:" + bc2.balance);
System.out.println("bc1银行卡余额:" + bc1.balance);
}
}
4.测试2
package com.yfs.javase;
public class CardTest3 {
public static void main(String[] args) {
BankCard bc1 = new BankCard();
bc1.saveMoney(5000);
bc1.drawMoney(500);
System.out.println("银行卡余额:" + bc1.balance);
BankCard bc2 = new BankCard();
bc2.saveMoney(3000);
System.out.println("bc2银行卡余额:" + bc2.balance);
bc2.drawMoney(5000);
bc2.balance = 10000;//修改余额 不安全操作
bc2.drawMoney(5000);
System.out.println("bc2银行卡余额:" + bc2.balance);
}
}
1.1bank类
package com.yfs.javase.update;
//类封装
public class BankCard { //属性 private 属性私有 只能在当前类中访问
private int balance;// 实例变量 分配给每个对象一个
private int password; // 方法 存钱
public void saveMoney(int money) {
if(money < 0) {
System.out.println("非法操作...");
return;
}
System.out.println("向账户存入" + money +"元...");
balance += money;//在方法中访问
} //取钱 调用时传入参数
public void drawMoney(int money) {
//验证余额
if(balance < money) {
System.out.println("账户余额不足...");
return; //终止方法调用
} System.out.println("从账户取出" + money + "元...");
balance -= money;
}
//通过访问balance属性方法 不能修改
public void getBalance () {
System.out.println("账户余额:" + balance);
} }
2.1测试
package com.yfs.javase.update;
public class CardTest3 {
public static void main(String[] args) {
BankCard bc1 = new BankCard();
bc1.saveMoney(5000);
bc1.drawMoney(50000);
// bc1.balance = 100000000;//编译出错
// System.out.println("银行卡余额:" + bc1.balance);//私有属性不能访问
bc1.getBalance();
// bc1.password;
}
}
3.1方法重载条件
package com.yfs.javase.update;
import java.util.Random;
public class Demo2 {
// public int add(int a, int b) {
// return a + b;
// }
//变量名称不能成为重载条件
// public int add(int c , int d) {
// return c + d;
// }
public double add(int a , double b) {
return a + b;
}
//返回值类型不能成为重载条件
public long add( int a, int b) {
return a + b;
}
public static void main(String[] args) {
Demo2 d1 = new Demo2();
long val = d1.add(1,6);
}
}
4.1方法重载示例
package com.yfs.javase.update;
public class OverRideDemo {
//方法的重载 方法使用相同的名字
public int add (int a, int b) {
return a + b;
}
public int add (int a , int b, int c) {
return a + b + c;
}
public double add( double a, double b) {
return a + b;
}
public static void main(String[] args) {
//创建对象
OverRideDemo od = new OverRideDemo();
int val = od.add(3,5);
System.out.println("add(3,5) = " + val);
val = od.add(3,5,8);//根据调用时传入参数个数 类型匹配对应方法
System.out.println("add1(3,5,8) = " + val);
double result = od.add(3.14, 2.71);
System.out.println("add(3.14, 2.71) = " + result);
}
}
java新手笔记9 类的封装示例的更多相关文章
- java新手笔记14 类继承示例
1.Person package com.yfs.javase; public class Person { private String name; private int age; private ...
- java新手笔记5 类
1.进制转换 /* 企业发放的奖金根据利润提成. 利润(I)低于或等于10万元时,奖金可提10%: 利润高于10万元,低于20万元时, 低于10万元的部分按10%提成,高于10万元的部分,可提成7.5 ...
- java新手笔记18 类比较
1.Shap类 package com.yfs.javase; public class Shape /*extends Object */{ //默认继承object object方法全部继承 // ...
- java新手笔记11 类的静态属性、方法(单例)
1.Person类 package com.yfs.javase; public class Person { String name;//每个对象上分配 与对象绑定 int age; char se ...
- Java学习笔记——File类之文件管理和读写操作、下载图片
Java学习笔记——File类之文件管理和读写操作.下载图片 File类的总结: 1.文件和文件夹的创建 2.文件的读取 3.文件的写入 4.文件的复制(字符流.字节流.处理流) 5.以图片地址下载图 ...
- Java学习笔记之---类和对象
Java学习笔记之---类和对象 (一)类 类是一个模板,它描述一类对象的行为和状态 例如:动物类是一个类,动物们都有属性:颜色,动物们都有行为:吃饭 public class Dog { Stri ...
- Java学习笔记(八)——封装
一.封装 1.定义 将类的信息隐藏在类的内部,不允许外部程序直接进行访问,而是通过该类提供的方法来实现对隐藏信息的操作和方法. 2.优点 (1)只能通过规定的方法访问数据 (2)隐藏类的细节,方便修改 ...
- 黑马程序员——JAVA基础之简述 类的封装
------- android培训.java培训.期待与您交流! ---------- 类的封装(Encapsulation) 封装:是指隐藏对象的属性和实现细节,仅对外提供公共访问方式. 封装优 ...
- java新手笔记16 面积
1.图形类 package com.yfs.javase; public class Shape { //计算面积方法 public double getArea() { System.out.pri ...
随机推荐
- 表达式计算器(LL1文法)
LL(1)文法求算数表达式的值递归子程序法 分析过程: 表达式文法G[E]:E->E+T|E-T|TT->T*F|T/F|T%F|FF->N^F|NN->(E)|NUM|+NU ...
- 1514:数值的整数次方 @jobdu
题目1514:数值的整数次方 时间限制:1 秒 内存限制:128 兆 特殊判题:否 提交:377 解决:103 题目描述: 给定一个double类型的浮点数base和int类型的整数exponent. ...
- 【05】了解C++默默编写并调用那些函数
1.如果没有声明copy构造方法,copy赋值操作符,和析构方法,编译器会自动生成这些方法,且是inline. 2.如果没有声明任何构造方法,编译器会自动生成一个default构造方法,且是inlin ...
- SQL中使用WITH AS提高性能(二)
继上一节 对比两条查询,第一是用了with as 第二条语句没用with as 查看执行计划的效果 WITH vep AS ( SELECT package.OrderCode , RANK() OV ...
- Nginx代码调试——gdb工具
参考网上的资料,写了一个configprint模块,其功能为打印输出location配置内容,并计数访问次数. 代码链接如下:https://github.com/PaulWeiHan/nginx_m ...
- Redis学习手册(String数据类型)
一.概述: 字符串类型是Redis中最为基础的数据存储类型,它在Redis中是二进制安全的,这便意味着该类型可以接受任何格式的数据,如JPEG图像数据或Json对象描述信息等.在Redis中字符串类型 ...
- VMware虚拟机安装Linux英文改中文系统并更新yum安装输入法
今天用VMware Workstation11时,出现了个"难题",在选择了系统盘后(我用iso镜像centos6.5)VMware会提示高速安装,安装后系统是英文版,并且找不到系 ...
- android datepicker源码
/* * Copyright (C) 2007 The Android Open Source Project * * Licensed under the Apache License, Versi ...
- java14 处理流
二.处理流 .引用类型,保留数据+类型 序列化:将对象保存到文件或者字节数组中保存起来,叫序列化.输出流:ObjectOutputStream.writeObject(). 反序列化:从文件或者字节数 ...
- 系统调用服务号 linux 2.6.32
http://www.cnblogs.com/xcywt/p/4998963.html 系统定义符号集中声明在 /usr/src/kernels/linux-2.6.32/include/linux/ ...