面向对象基础

面向对象就是拿东西过来做对应的东西。

例如手机,这是一个手机类,这个类可以做很多事情,例如打电话、发短信、看电视等等。而且每部手机都有自己不同的属性,例如内存、cpu、颜色等等。

对象是再class里面创建,再创建的时候,不要对属性赋值(因为每一个这个类型的事物,虽然有相同的属性,但属性值不都是一样的)。

1、对象创建之后需要将属性的权限私有化,使属性类外访问不到,再在类里面提供属性的接口,使可以对属性赋值以及拿到这个属性的值。

2、在创建属性之后,需要对这个对象添加构造方法,构造方法又分无参构造方法和有参构造方法

无参构造格式:对象名(){}      

有参构造格式:对象名(属性数据类型 属性...){};

注:如果只写有参构造方法,那么系统默认无参构造方法将失效。即在创建对象的时候必须给属性赋值。在添加了无参构造方法之后,那么可以在创建对象的时候对属性赋值,也可以在创建对象之后,通过属性对外的接口去对属性赋值。

3、属性对外的接口

例如饮水机这个类

那么创建类,并定义这个类的属性(品牌 brand)(颜色 color)(容量 capacity)(模式 model)

public class WaterDispenser {
    private String brand;
    private String color;
    private int capacity;
    private String model;

    public WaterDispenser() {        //无参构造方法
    }

    //有参构造方法
    public WaterDispenser(String brand, String color, int capacity, String model) {
        this.brand = brand;
        this.color = color;
        this.capacity = capacity;
        this.model = model;
    }
}

此时属性权限都为私有,其他类访问不到,只能在类内访问,那么如果要在类外访问,那么必须建立属性对外的接口(即类外能对这个属性赋值并读取的方法);

例如品牌这个属性:

    public String getBrand() {     //通过这个类的成员方法,去给这个属性赋值
        return brand;
    }

    public void setBrand(String brand) {       //通过成员方法去得到这个这个属性的属性值
        this.brand = brand;
    }

4、this关键字

使用哪个对象的时候,this就是它本身

例题:1

/*
编写饮水机类 WaterDispenser
定义四个成员变量(品牌 brand)(颜色 color)(容量 capacity)(模式 model)
私有成员变量,提供 setXxx\getXxx 方法
提供空参、带参构造方法
提供成员方法 show - 用于展示出所有成员变量所记录的值
编写测试类 Test
使用带参构造方法创建对象,给属性赋值为(美的,红色,5L,手动净水)
调用show方法执行
将容量获取出来,并判断容量是否大于3L.
 */
public class WaterDispenserTest {
    public static void main(String[] args) {
        WaterDispenser waterDispenser = new WaterDispenser("美的", "红色", 5, "手动净水");
        waterDispenser.showPrint();
        if (waterDispenser.getCapacity() > 3) {
            System.out.println("该饮水机容量大于3L");
        } else {
            System.out.println("该饮水机容量小于3L");
        }
    }
}

饮水机( WaterDispenser)类

public class WaterDispenser {
    private String brand;
    private String color;
    private int capacity;
    private String model;

    public WaterDispenser() {
    }

    public WaterDispenser(String brand, String color, int capacity, String model) {
        this.brand = brand;
        this.color = color;
        this.capacity = capacity;
        this.model = model;
    }

    public String getBrand() {
        return brand;
    }

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

    public String getColor() {
        return color;
    }

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

    public int getCapacity() {
        return capacity;
    }

    public void setCapacity(int capacity) {
        this.capacity = capacity;
    }

    public String getModel() {
        return model;
    }

    public void setModel(String model) {
        this.model = model;
    }

    public void showPrint() {
        System.out.println("品牌:" + this.brand);
        System.out.println("颜色:" + this.color);
        System.out.println("容量:" + this.capacity + "L");
        System.out.println("模式:" + this.model);
    }
}

 

 

题2:

/*
定义项目经理类Manager。属性:姓名name,工号id,工资salary,奖金bonus。行为:工作work()
定义程序员类Coder。属性:姓名name,工号id,工资salary。行为:工作work()

要求:
	1.按照以上要求定义Manager类和Coder类,属性要私有,生成空参、有参构造,set和get方法
	2.定义测试类,在main方法中创建该类的对象并给属性赋值(set方法或有参构造方法)
 */
public class Test {
    public static void main(String[] args) {
        Manager manager=new Manager();
        manager.setManagerId("123");
        manager.setManagerSalary(15000);
        manager.setManagerBonus(6000);
        manager.managerWork();

        Coder coder=new Coder();
        coder.setCoderId("135");
        coder.setCoderSalary(10000);
        coder.coderWork();
    }
}

经理类:

public class Manager {
    private String managerName;     //姓名
    private String managerId;       //id
    private double managerSalary;   //工资
    private double managerBonus;    //奖金

    public Manager() {
    }

    public Manager(String managerName, String managerId, double managerSalary, double managerBonus) {
        this.managerName = managerName;
        this.managerId = managerId;
        this.managerSalary = managerSalary;
        this.managerBonus = managerBonus;
    }

    public String getManagerName() {
        return managerName;
    }

    public void setManagerName(String managerName) {
        this.managerName = managerName;
    }

    public String getManagerId() {
        return managerId;
    }

    public void setManagerId(String managerId) {
        this.managerId = managerId;
    }

    public double getManagerSalary() {
        return managerSalary;
    }

    public void setManagerSalary(double managerSalary) {
        this.managerSalary = managerSalary;
    }

    public double getManagerBonus() {
        return managerBonus;
    }

    public void setManagerBonus(double managerBonus) {
        this.managerBonus = managerBonus;
    }

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

程序员类:

public class Coder {
    private String coderName;
    private String coderId;
    private double coderSalary;

    public Coder() {
    }

    public Coder(String coderName, String coderId, double coderSalary) {
        this.coderName = coderName;
        this.coderId = coderId;
        this.coderSalary = coderSalary;
    }

    public String getCoderName() {
        return coderName;
    }

    public void setCoderName(String coderName) {
        this.coderName = coderName;
    }

    public String getCoderId() {
        return coderId;
    }

    public void setCoderId(String coderId) {
        this.coderId = coderId;
    }

    public double getCoderSalary() {
        return coderSalary;
    }

    public void setCoderSalary(double coderSalary) {
        this.coderSalary = coderSalary;
    }

    public void coderWork() {
        System.out.println("工号为" + this.coderId + " 基本工资为" + this.coderSalary + " 的程序员正在努力的写着代码......");
    }
}

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值