编写一个简单Java类Phone。 (1)包含三个属性brand,name和price,属性全部封装。
时间: 2024-02-09 19:08:18 浏览: 87
好的,下面是一个简单的Java类Phone,包含三个封装的属性brand,name和price:
```java
public class Phone {
private String brand;
private String name;
private double price;
public String getBrand() {
return brand;
}
public void setBrand(String brand) {
this.brand = brand;
}
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;
}
}
```
在这个类中,我们使用private关键字将属性brand,name和price封装起来,防止外部直接访问或修改它们。然后,我们为每个属性分别提供了get和set方法,以便外部可以安全地获取或修改这些属性的值。这种封装方式可以保护对象的状态,使代码更加健壮和可维护。
相关问题
编写一个简单Java类Phone。 (1)包含三个属性brand,name和price,属性全部封装。 (2)方法: 提供一个三参构造方法对属性赋值,另外提供一个无参构造方法。 提供显示信息的方法,方法名display,将两个属性的信息显示在屏幕上。 提供getter和setter方法。 在另外一个主类中创建一个Phone对象,给属性初始化,并显示信息
好的,下面是一个包含构造方法、显示信息方法和getter/setter方法的Java类Phone:
```java
public class Phone {
private String brand;
private String name;
private double price;
public Phone() {
}
public Phone(String brand, String name, double price) {
this.brand = brand;
this.name = name;
this.price = price;
}
public void display() {
System.out.println("Brand: " + brand);
System.out.println("Name: " + name);
System.out.println("Price: " + price);
}
public String getBrand() {
return brand;
}
public void setBrand(String brand) {
this.brand = brand;
}
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;
}
}
```
在这个类中,我们增加了一个无参构造方法和一个三参构造方法,可以通过这些构造方法创建Phone对象并初始化它的属性。我们也提供了一个display方法,用于显示这个对象的属性信息。最后,我们还提供了getter和setter方法,使得外部可以安全地获取和修改对象的属性。
下面是在主类中创建一个Phone对象并初始化它的属性,并调用display方法显示它的信息的代码:
```java
public class Main {
public static void main(String[] args) {
Phone phone = new Phone("Apple", "iPhone 12", 799.0);
phone.display();
}
}
```
输出结果为:
```
Brand: Apple
Name: iPhone 12
Price: 799.0
```
c++制作一个超市购物系统要求有封装性多态性和继承性,其功能包括展示商品类型,购物及余额计算,代码行数在200左右
好的,以下是一份简单的 C++ 超市购物系统代码,实现了面向对象的封装、继承和多态:
```cpp
#include <iostream>
#include <vector>
using namespace std;
// 商品类
class Goods {
public:
Goods(string name, double price) : name(name), price(price) {}
virtual ~Goods() {}
string getName() { return name; }
double getPrice() { return price; }
virtual void showInfo() { cout << name << " ¥" << price << endl; }
private:
string name;
double price;
};
// 食品类
class Food : public Goods {
public:
Food(string name, double price, string expireDate) : Goods(name, price), expireDate(expireDate) {}
void showInfo() { cout << getName() << " ¥" << getPrice() << " 过期日期:" << expireDate << endl; }
private:
string expireDate;
};
// 电子产品类
class Electronics : public Goods {
public:
Electronics(string name, double price, string brand) : Goods(name, price), brand(brand) {}
void showInfo() { cout << getName() << " ¥" << getPrice() << " 品牌:" << brand << endl; }
private:
string brand;
};
// 购物车类
class ShoppingCart {
public:
ShoppingCart(double balance) : balance(balance) {}
void addGoods(Goods* goods) {
goodsList.push_back(goods);
cout << "已加入购物车:" << goods->getName() << endl;
}
void showGoodsList() {
if (goodsList.empty()) {
cout << "购物车为空" << endl;
} else {
cout << "购物车列表:" << endl;
for (auto goods : goodsList) {
goods->showInfo();
}
}
}
void calculateTotalPrice() {
double totalPrice = 0.0;
for (auto goods : goodsList) {
totalPrice += goods->getPrice();
}
cout << "商品总价:¥" << totalPrice << endl;
}
void pay() {
double totalPrice = 0.0;
for (auto goods : goodsList) {
totalPrice += goods->getPrice();
}
if (balance < totalPrice) {
cout << "余额不足,请充值" << endl;
} else {
balance -= totalPrice;
cout << "支付成功,余额:" << balance << endl;
goodsList.clear();
}
}
private:
double balance;
vector<Goods*> goodsList;
};
int main() {
Goods* apple = new Food("苹果", 4.5, "2022-01-01");
Goods* banana = new Food("香蕉", 3.0, "2021-12-31");
Goods* phone = new Electronics("手机", 2999.0, "Apple");
ShoppingCart cart(10000.0); // 初始余额 10000 元
cart.addGoods(apple); // 加入购物车:苹果
cart.addGoods(banana); // 加入购物车:香蕉
cart.addGoods(phone); // 加入购物车:手机
cart.showGoodsList(); // 购物车列表:
// 苹果 ¥4.5 过期日期:2022-01-01
// 香蕉 ¥3 品牌:
// 手机 ¥2999 品牌:Apple
cart.calculateTotalPrice(); // 商品总价:¥3006.5
cart.pay(); // 支付成功,余额:6993.5
cart.showGoodsList(); // 购物车为空
delete apple;
delete banana;
delete phone;
return 0;
}
```
该程序中,我们定义了一个 `Goods` 商品类,包含商品名称和价格,以及展示商品信息的虚函数 `showInfo()`,并派生出了 `Food` 食品类和 `Electronics` 电子产品类,它们分别在 `showInfo()` 中展示了不同的商品信息。
我们还定义了一个 `ShoppingCart` 购物车类,包含余额和商品列表,以及添加商品、展示商品列表、计算商品总价和支付等操作。在购物车中,我们使用了指向 `Goods` 类的指针,从而实现了多态的效果。
在 `main()` 函数中,我们创建了苹果、香蕉和手机三个商品,并加入购物车中。之后我们展示了购物车列表、计算商品总价和支付等操作。最后我们还释放了动态分配的内存空间。
以上代码仅供参考,不一定符合您的要求,您可以根据实际需求进行修改和完善。
阅读全文