Java中的类与对象(万象皆对象)

         其实在之前的面向对象的总结里面自己也有说到过对象这个思想的臆测,但是未曾仔细的去深究过,但是对于对象和类这个知识点自己觉得还是有理解不够,今天自己深入了解了一下,并把自己学习的心得跟大家分享一下。      

       在Java语言中除了8个基本数据类型之外,一切都是对象了,而对象就是面向对象设计程序的重中之中。在Java中对象是我们要表达的一切的事物,从最简单的整数到复杂的航空火箭我们都可以看做是对象,而且它不仅能表示具体的一些事物,还能表示一些比较抽象的规则,计划或事件;而类就是对于一类对象的具有相同的特性,按照拥有同样的特性我们就可以把他们归为一类,所以我对于类的理解是根据不同的共同点来分就可以把一个对象同时分化为多个类,就像大学根据兴趣参加学生社团,假设你加入了5个社团,每个社团都是因为有具体的兴趣爱好和去做这些爱好的事情才在一起的,如果把每个社团归为同一个类,那么根据这5个社团来说你都是他们类中的一个对象,又假设你室友也加了5个社团但是只有一个跟你是同一个社团,那么你能说你们是一类人还是不是一类人呢?根据你们加的同一个社团来说,你们两个都是它的对象,你们确实可以称为同一类人,但是对于其他4个来说,你们又不是,所以说定义是不是同一个类是根据共有属性相对而言的,由此可见,类是描述了一组具有相同特性(属性)和相同行为(方法)的对象。

        我们继续去讨论这个问题,你和你室友在同一个兴趣社团里面,你们做同样的事情,你们都是这个社团类的对象,那么我能不能说定义你们是同一个人呢?显然这是不行的,但是在计算机的程序里面我们因为所创建的对象,我们往往总是的把一个类中创建的两个对象混淆成同一个,显然这是不好的(其实这也是泛型产生的原因之一),在面向对象中,其实你们加的同一个社团可以理解为一个接口或者抽象类,你们只是具有相同的行为,但是你们在其他的方面来说又是有很大的区别,又各自是其他的类的对象;但是在java里面我们在一个类里面往往是具有相同的属性;而在刚刚举例的情况下,又不能说他们是完全相同的,这个时候我们最好把两个人分别作为两个不同的类,这就是提升了级别,他们都实现了同一个接口,又有各自不同的各种其他的接口,这只是就事论事,但是还是不能完全的表述这两个人的不同和相同,所以我觉得在类与对象这个概念而言都是根据属性相对而言的,面向对象这个思想还只是能够根据需要研究的属性来探讨表现出来,但是确实已经是很强大了,而有的不足正是我们需要努力的方向。(还有很多理解不到位的地方,还请不吝赐教!!!)

abstract class 葵花宝典{
    public abstract void 自宫();
}
class 岳不群 extends 葵花宝典{
    public void 自宫() {
        System.out.println("用牙签");
    }
}
class 林平之 extends 葵花宝典{
    public void 自宫() {
        System.out.println("用指甲刀");
    }
}
class 东方不败 extends 葵花宝典{
    public void 自宫() {
        System.out.println("用锤子");
    }
}

这是自己在学习过程中,老师讲的一段代码,自己配合自己的观点解释一下,这里就是后面讲的提升,这里用类能够更好的描述(相比对象来将),对于葵花宝典这个类来说,我们可以说岳不群和林平之,东方不败是同一类人,却不是同一个人,然后他们又有自己的其他的兴趣爱好,比如东方不败喜欢男人,这又是面向对象体现继承和接口多实现的另一知识点,最后我们还是觉得描述三人还是不到位的感觉,这就数面向对象这个思想还需要我们加强奋斗的方向。

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值