Java学习之面向对象浅谈

何为对象?

       学习Java就肯定知道一句 "万物皆对象",那么这个对象是什么呢?肯定有不少人对这个对象很迷惑,当然对象不可能是你所理解的女朋友或者男朋友,这个对象指的是现实生活中真实存在的具体的事物。就比如说,人、树、电视等等。具体一点,我们本身就是一类对象,我们都属于人类这个大对象。每个对象都有它的属性和行为。属性指的是这个事物的一些属性,就字面意思;行为指的是这个事物能做什么或者说要做什么。就比如说汽车,它的属性有颜色、型号、厂商等等,它的行为有行驶等。通俗来讲,对象就是现实中的东西,它需要明确两点:是什么,做什么。(我是谁?我要做什么?)

何为面向对象?

       所谓面向对象就是将一个事物的属性和行为抽离出来单独成一个类,然后如果需要使用这个事物就调用这个类,如果需要这个事物干什么事就通过这个类调用其中的方法(行为)。简单来说就是站在领导者视角,如果需要干什么事,就去招(创建)一个能干这个事的人(泛指可以是物),你指挥这个人干。

       比如你想要开汽车,那么肯定要有一辆汽车,这时就需要创建一个汽车对象。这个汽车对象具有颜色、型号等属性和行驶行为。对象创建出来之后你就有了汽车,就可以行驶汽车。

为什么要面向对象编程?

       提到面向对象编程就不得不提面向过程,面向过程和面向对象编程是解决问题的两种方式(可能还有一种方式叫面向函数),它们两个各有各的有点和适用方向,不能一定的说谁好谁坏。回归问题,为什么要面向对象?因为便利,可以有效的减少重复的工作量。比如小红,小绿,小蓝都是猫,它们都有名字颜色品种等属性,都可以做东西,喵喵叫等动作,如果不面向对象编程,那可能你需要创建三个容器来分别存入三只小猫的属性和动作,而且还容易出现数据类型冲突问题,但如果面向对象编程,你就可以只创建一个猫对象,然后new三个对象就可以了。如果后面还需要添加更多的猫,那么非面向对象就要修改容器大小,而面向对象编程就只需要创建新的对象就行。

// 非面向对象
public static void main(String[] args) {
        String[] name = new String[3];
        int[] age = new int[3];
        String[] brand = new String[3];
        String[] color = new String[3];
        name[0] = "小红";
        name[1] = "小蓝";
        name[2] = "小绿";
        age[0] = 1;
        age[1] = 2;
        age[2] = 3;
        brand[0] = "狸花";
        brand[1] = "布偶";
        brand[2] = "暹罗";
        color[0] = "白色";
        color[1] = "白棕";
        color[2] = "黑色";
}

// 面向对象
// 猫对象类
public class Cat {

    private String name;
    private int age;
    private String brand;
    private String color;

    // 空参构造
    public Cat() {
    }
    //全参构造
    public Cat(String name, int age, String brand, String color) {
        this.name = name;
        this.age = age;
        this.brand = brand;
        this.color = color;
    }

    public String getName() {
        return name;
    }

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

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }

    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 static void main(String[] args) {
        // 构建Cat类对象  实例化
        // 可以通过调用set方法设置具体属性
        Cat cat = new Cat();
        cat.setAge(2);
        cat.setBrand("布偶");
        cat.setColor("白棕");
        cat.setName("狗蛋");
        // 可以优化为一行代码----构造方法
        // 也可以使用全参构造直接赋值
        Cat cat1 = new Cat("小蓝",2,"狸花","蓝色");
        Cat cat2 = new Cat("小红",2,"狸花","蓝色");
        Cat cat3 = new Cat("小绿",2,"狸花","蓝色");
}

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值