Java面向对象的封装

1、成员变量
成员变量定义在类中方法外
2、局部变量
局部变量定义在方法当中
3、成员变量和局部变量的区别
类中位置不同:成员变量(类中方法外)局部变量(方法内部或方法声明上)
内存中位置不同:成员变量(堆内存)局部变量(栈内存)
生命周期不同:成员变量(随着对象的存在而存在,随着对象的消失而消失)局部变量(随着方法的调用而存在,醉着方法的调用完毕而消失)

private是一个修饰符,可以用来修饰成员(成员变量,成员方法)
被private修饰的成员,只能在本类进行访问
针对private修饰的成员变量,如果需要被其他类使用,提供相应的操作
提供“get变量名()”方法,用于获取成员变量的值,方法用public修饰
提供“set变量名(参数)”方法,用于设置成员变量的值,方法用public修饰
初始化值不同:成员变量(有默认初始化值)局部变量(没有默认初始化值,必须先定义,赋值才能使用)

分析以下需求并实现

手机类Phone
属性:
品牌brand
价格price
行为:
打电话call()
发短信sendMessage()
玩游戏playGame()

要求:
1.按照以上要求定义类,属性要私有,生成空参、有参构造,setter和getter方法
2.定义测试类,在main方法中创建该类的对象并给属性赋值(演示两种方法:setter方法和构造方法)
3.调用三个成员方法,打印格式如下:
正在使用价格为998元的小米品牌的手机打电话…
正在使用价格为998元的小米品牌的手机发短信…
正在使用价格为998元的小米品牌的手机玩游戏…

public class Phone {
    private String brand;
    private int price;

    public String getBrand() {
        return brand;
    }

    public void setBrand(String brand) {
        this.brand = brand;
    }

    public int getPrice() {
        return price;
    }

    public void setPrice(int price) {
        this.price = price;
    }

    public Phone() {
    }

    public Phone(String brand, int price) {
        this.brand = brand;
        this.price = price;
    }

    public void call() {
        System.out.println("正在使用价格为" + price + "的" + brand + "品牌的手机打电话");
    }

    public void sendMessage() {
        System.out.println("正在使用价格为" + price + "的" + brand + "品牌的手机发短信");
    }

    public void playGame() {
        System.out.println("正在使用价格为" + price + "的" + brand + "品牌的手机玩游戏");
    }

}

public class PhoneTest {
    public static void main(String[] args) {
        Phone p = new Phone();
        p.setBrand("小米");
        p.setPrice(999);
        p.call();
        p.sendMessage();
        p.playGame();
        Phone p1 = new Phone("小米", 999);
        p1.call();
        p1.sendMessage();
        p1.playGame();
    }
}

分析以下需求并实现
1.项目经理类Manager
属性:
姓名name
工号id
工资salary
奖金bonus
行为:
工作work()
2.程序员类Coder
属性:
姓名name
工号id
工资salary
行为:
工作work()
要求:
1.按照以上要求定义Manager类和Coder类,属性要私有,生成空参、有参构造,setter和getter方法
2.定义测试类,在main方法中创建该类的对象并给属性赋值(演示两种方法:setter方法和构造方法)
3.调用成员方法,打印格式如下:
工号为123基本工资为15000奖金为6000的项目经理正在努力的做着管理工作,分配任务,检查员工提交上来的代码…
工号为135基本工资为10000的程序员正在努力的写着代码…

/*
程序员类Coder
		属性:
			姓名name
			工号id
			工资salary
		行为:
			工作work()
 */
public class Coder {
    private String name;
    private int id;
    private double salart;

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }

    public double getSalart() {
        return salart;
    }

    public void setSalart(double salart) {
        this.salart = salart;
    }

    public Coder(String name, int id, double salart) {
        this.name = name;
        this.id = id;
        this.salart = salart;
    }

    public Coder() {
    }

    public void work() {
        System.out.println("工号为1" + id + "基本工资为" + salart + "的程序员" + name + "正在努力的写着代码......");
    }
}

/*
1.项目经理类Manager
		属性:
			姓名name
			工号id
			工资salary
			奖金bonus
		行为:
			工作work()
 */
public class Manager {
    private String name;
    private int id;
    private double salasry;
    private double bonus;

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }

    public double getSalasry() {
        return salasry;
    }

    public void setSalasry(double salasry) {
        this.salasry = salasry;
    }

    public double getBonus() {
        return bonus;
    }

    public Manager(String name, int id, double salasry, double bonus) {
        this.name = name;
        this.id = id;
        this.salasry = salasry;
        this.bonus = bonus;
    }


    public void setBonus(double bonus) {
        this.bonus = bonus;
    }

    public Manager() {
    }

    public void work() {
        System.out.println("工号为" + id + "基本工资为" + salasry + "奖金为" + bonus + "的项目经理" + name + "正在努力的做着管理工作,分配任务,检查员工提交上来的代码.....");


    }

}


/*
工号为123基本工资为15000奖金为6000的项目经理正在努力的做着管理工作,分配任务,检查员工提交上来的代码.....
			工号为135基本工资为10000的程序员正在努力的写着代码......
 */

public class Test {
    public static void main(String[] args) {
        Manager m = new Manager();
        m.setName("杨闯");
        m.setId(123);
        m.setBonus(6000);
        m.setSalasry(15000);
        m.work();
        Manager m1 = new Manager("杨闯", 123, 15000, 6000);
        m1.work();

        Coder c = new Coder();
        c.setName("王思×");
        c.setId(135);
        c.setSalart(10000);
        c.work();
        Coder c1 = new Coder("王思×", 135, 10000);
        c1.work();
    }
}

分析以下需求并实现
1.猫类Cat
属性:
毛的颜色color
品种breed
行为:
吃饭eat()
抓老鼠catchMouse()
2.狗类Dog
属性:
毛的颜色color
品种breed
行为:
吃饭()
看家lookHome()
要求:
1.按照以上要求定义Cat类和Dog类,属性要私有,生成空参、有参构造,setter和getter方法
2.定义测试类,在main方法中创建该类的对象并给属性赋值(演示两种方法:setter方法和构造方法)
3.调用成员方法,打印格式如下:
花色的波斯猫正在吃鱼…
花色的波斯猫正在逮老鼠…
黑色的藏獒正在啃骨头…
黑色的藏獒正在看家…

/*
	1.猫类Cat
		属性:
			毛的颜色color
			品种breed
		行为:
			吃饭eat()
			抓老鼠catchMouse()
 */
public class Cat {
    private String color;
    private String breed;

    public Cat() {
    }

    public Cat(String color, String breed) {
        this.color = color;
        this.breed = breed;
    }

    public String getColor() {
        return color;
    }

    public void setColor(String color) {
        this.color = color;
    }

    public String getBreed() {
        return breed;
    }

    public void setBreed(String breed) {
        this.breed = breed;
    }

    public void eat() {
        System.out.println("" + color + "的" + breed + "正在吃鱼.....");
    }

    public void catchMouse() {
        System.out.println(color + "的" + breed + "正在逮老鼠....");
    }
}

/*
2.狗类Dog
		属性:
			毛的颜色color
			品种breed
		行为:
			吃饭eat()
			看家lookHome()
 */
public class Dog {
    private String color;
    private String breed;

    public Dog() {
    }

    public Dog(String color, String breed) {
        this.color = color;
        this.breed = breed;
    }

    public String getColor() {
        return color;
    }

    public void setColor(String color) {
        this.color = color;
    }

    public String getBreed() {
        return breed;
    }

    public void setBreed(String breed) {
        this.breed = breed;
    }

    public void eat() {
        System.out.println(color + "的" + breed + "正在啃骨头.....");
    }

    public void lookHome() {
        System.out.println(color + "的" + breed + "正在看家.....");
    }
}

/*
1.按照以上要求定义Cat类和Dog类,属性要私有,生成空参、有参构造,setter和getter方法
		2.定义测试类,在main方法中创建该类的对象并给属性赋值(演示两种方法:setter方法和构造方法)
		3.调用成员方法,打印格式如下:
			花色的波斯猫正在吃鱼.....
			花色的波斯猫正在逮老鼠....
			黑色的藏獒正在啃骨头.....
			黑色的藏獒正在看家.....
 */
public class Cat_DogDemo {
    public static void main(String[] args) {
        Cat c = new Cat();
        c.setColor("花色");
        c.setBreed("波斯猫");
        c.eat();
        c.catchMouse();

        System.out.println("--------");

        Dog d = new Dog("黑色", "藏獒");
        d.eat();
        d.lookHome();
    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值