Java面向对象基础
构造器
public class Car { String name; double price; /** 无参数构造器(默认存在的) */ public Car(){ System.out.println("无参数构造器被触发执行~~~"); } /** 有参数构造器 */ public Car(String n, double p){ System.out.println("有参数构造器被触发执行~~~"); name = n; price = p; } }
this指向
public class Car { String name; double price; public void goWith(String name){ System.out.println(this.name +"正在和:" + name +"比赛!"); } /** 无参数构造器(默认存在的) */ public Car(){ System.out.println("无参数构造器被触发执行~~~"); } /** 有参数构造器 */ public Car(String name, double price){ System.out.println("有参数构造器被触发执行~~~"); System.out.println(this); this.name = name; this.price = price; } }
面向对象基础:JavaBean
可以定义完成员变量右键Generate Get Set 自动生成函数
public class User { private double height; private String name; private double salary; private String address; private String phone; public User() { } public User(double height, String name, double salary, String address, String phone) { this.height = height; this.name = name; this.salary = salary; this.address = address; this.phone = phone; } public double getHeight() { return height; } public void setHeight(double height) { this.height = height; } public String getName() { return name; } public void setName(String name) { this.name = name; } public double getSalary() { return salary; } public void setSalary(double salary) { this.salary = salary; } public String getAddress() { return address; } public void setAddress(String address) { this.address = address; } public String getPhone() { return phone; } public void setPhone(String phone) { this.phone = phone; } }
购物车练习
定义类 Goods.java
package com.domain.demo; public class Goods { // javabean要全部私有 private int id; private String name; private double price; private int buyNumber; public Goods(){ } // IDE右键Generate Constructor 一般有参数的构造器不常用 public Goods(int id, String name, double price, int buyNumber) { this.id = id; this.name = name; this.price = price; this.buyNumber = buyNumber; } // IDE右键Generate Getter Setter 自动生成 public int getId() { return id; } public void setId(int id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public double getPrice() { return price; } public void setPrice(double price) { this.price = price; } public int getBuyNumber() { return buyNumber; } public void setBuyNumber(int buyNumber) { this.buyNumber = buyNumber; } }
ShopCarTest.java
package com.domain.demo; import java.util.Scanner; public class ShopCarTest { public static void main(String[] args) { Goods[] shopCar = new Goods[100]; // [null, null, ...] // 选中代码 Ctrl + Alt + T 可以加 while while (true) { System.out.println("请您选择如下命令操作:"); System.out.println("添加到购物车 add"); System.out.println("查询商品 query"); System.out.println("修改商品购买数量 update"); System.out.println("结算购物车金额 pay"); Scanner sc = new Scanner(System.in); System.out.println("请您输入命令:"); String command = sc.next(); switch (command){ case "add": // 添加到购物车 // Alt + 回车 自动创建方法 addGoods(shopCar, sc); break; case "query": // 查询商品 queryGoods(shopCar); break; case "update": // 修改商品购买数量 updateGoods(shopCar, sc); break; case "pay": // 结算购物车金额 pay(shopCar); break; default: System.out.println("没有该功能"); } } } public static void pay(Goods[] shopCar) { queryGoods(shopCar); double money = 0; // [g1, g2, null, ...] for (int i = 0; i < shopCar.length; i++) { Goods g = shopCar[i]; if(g != null) { money += g.getPrice() * g.getBuyNumber(); } else { break; } } System.out.println("订单总金额:"+ money); } public static Goods getGoodsById(Goods[] shopCar,int id) { // shopCar = [g1, g2, g3, null, null, null, ...] for (int i = 0; i < shopCar.length; i++) { Goods g = shopCar[i]; if(g != null) { //判断商品id是不是查找的 if(g.getId() == id) { return g; } } else { // 遍历到最后都没找到 return null; } } // 假设100个商品都存在并且找完了100个商品都没有找到 return null; } public static void updateGoods(Goods[] shopCar, Scanner sc) { // 根据用户输入ID修改对应商品 while (true) { System.out.println("请输入要修改的商品ID"); int id = sc.nextInt(); Goods g = getGoodsById(shopCar, id); if(g == null) { // 没有该商品 System.out.println("没有找到该商品"); } else { // 存在该商品对象,可以进行修改 System.out.println("请输入" + g.getName() + "商品最新购买数量"); int buyNumber = sc.nextInt(); g.setBuyNumber(buyNumber); System.out.println("修改完成"); queryGoods(shopCar); break; } } } public static void queryGoods(Goods[] shopCar) { System.out.println("==========查询购物车信息如下=========="); System.out.println("编号\t\t名称\t\t价格\t\t购买数量"); for (int i = 0; i < shopCar.length; i++) { Goods g = shopCar[i]; if (g != null) { System.out.println(g.getId() + "\t\t" + g.getName() + "\t\t" + g.getPrice() + "\t\t" + g.getBuyNumber()); } else { // 遍历结束 break; } } } public static void addGoods(Goods[] shopCar, Scanner sc) { System.out.println("请您输入购买商品编号(不重复)"); int id = sc.nextInt(); System.out.println("输入商品名称"); String name = sc.next(); System.out.println("输入商品数量"); int buyNumber = sc.nextInt(); System.out.println("输入购买的价格"); double price = sc.nextDouble(); Goods g = new Goods(); g.setId(id); g.setName(name); g.setBuyNumber(buyNumber); g.setPrice(price); // Goods push in array // shopCar = [a, a2, numm, .....] for (int i = 0; i < shopCar.length; i++) { // 寻找位置 if(shopCar[i] == null){ // 说明此位置没有元素存入 shopCar[i] = g; // 结束,商品成功存入,不需要再找位置了 break; } System.out.println("您的商品" + g.getName() + "已经添加到购物车"); } } }