java笔记4
private关键字
private关键字
(1)修饰成员:可以修饰成员变量和成员方法
(2)特点:被private修饰的后的成员只能在本类中被访问
(3)private的应用:定义类的时候,当把成员变量给private修饰时,需提供对应的getXxx()和setXxx()方法 ,这样提高了数据的安全性。
class Person
{
private int age;//age被声明成private
public void setAge(int num)
{
age=num;
}
public int getAge()
{
return age;
}
}
class PersonDemo
{
public static void main(String[] args)
{
Person p =new Person();
// p.Age=10//age由于是priva,因此类外无法通过对象访问,无法使用
p.setAge(10);
//System.out.println(p.age);//age由于是priva,因此类外无法通过对象访问,无法使用
System.out.println(p.getAge());//只能通过get访问
}
}
~~
购物系统案例
案例需求
定义一个类,描述订单信息
订单id
订单所属用户(用户对象)
订单所包含的商品(不定数量个商品对象)
订单总金额
订单应付金额:
总金额满1000,打折98折
总金额满2000,打折95折
总金额满3000,打折90折
在此基础上,还要看用户的vip等级
用户vip等级为:黄金vip,则折上折:98
用户vip等级为:钻石vip,则折上折:96
用户vip等级为:至尊vip,则折上折:92
代码
创建Product类
package Shopping;
public class Product {
public String Pname;
public String Pid;
public float Price;
public int Pnumber;
// public float sumPrice =this.Pnumber*this.Price;
public Product(){};
//下面这个东西叫做构造方法
public Product(String Pname,String Pid, float Price,int Pnumber){
this.Pname=Pname;
this.Pid=Pid;
this.Price=Price;
this.Pnumber=Pnumber;
};
}
创建User类
package Shopping;
public class User {
String userName;
String userId;
String vipLevel;
public User(){}//使其可以传空对象
public User(String userName,String userId,String vipLevel ){
this.userName=userName;
this.userId=userId;
this.vipLevel=vipLevel;}
}
创建Order类
package Shopping;
import java.util.ArrayList;
public class Order {
public String orderId; //public可以让他在其他地方能够引用
public User orderUser;
public ArrayList<Product> productList;
public float amountFee ;
public float toPayFee ;
//计算总金额
public void setAmountFee(){
float sum=0;
for(int i=0;i<this.productList.size();i++){
sum=sum+this.productList.get(i).Price*this.productList.get(i).Pnumber;
}
this.amountFee=sum;
}
//计算应付金额
public void setToPayFee(){
float tmp=this.amountFee;
//根据总金额的第一层计算
if (this.amountFee>=1000&this.amountFee<2000){
tmp=amountFee*0.98f;}
if (this.amountFee>=2000&this.amountFee<3000){
tmp=amountFee*0.95f;}
if (this.amountFee>=3000){
tmp=amountFee*0.90f;}
//根据VIPlevel的第二层计算
if (this.orderUser.vipLevel.equals("黄金vip")){
tmp=tmp*0.98f;}
if (this.orderUser.vipLevel.equals("钻石vip")){
tmp=tmp*0.96f;}
if (this.orderUser.vipLevel.equals("致尊vip")){
tmp=tmp*0.92f;}
this.toPayFee=tmp;
}
}
测试
package Shopping;
import java.io.ObjectInputStream.GetField;
public class OrderTest {
public static void main(String[] args) {
//创建用户的对象
User user1=new User();
user1.userId="1";
user1.userName="林孝荣";
user1.vipLevel="黄金vip";
//创建商品的对象
Product pd1=new Product();
pd1.Pname="作业本";
pd1.Pnumber=2;
pd1.Price=13;
pd1.Pid="1";
Product pd2=new Product();
pd2.Pname="铅笔";
pd2.Pnumber=3;
pd2.Price=21;
pd2.Pid="2";
// System.out.println(pd1.sumPrice);
//创建订单的对象
Order od1 =new Order(); //创建订单的类
od1.orderId="1";
od1.orderUser=user1;
od1.productList.add(pd1);
od1.productList.add(pd2);
od1.setAmountFee();
od1.setToPayFee();
System.out.println(od1.productList.get(1));
}
}