java编程思想

1.构造器作用

构造方法分为有参数和没有参数两种。有参数的构造方法主要就是用于对创建出来的对象进行初始化。
没有参数的构造方法创建对象时也会被调用。创建对象时,首先变量中的所有变量会得到零值,然后执行定义初始化,最后执行构造方法。

其实,构造方法的主要作用就是为对象成员变量赋初始值(保证初始化),总是与new运算符一起使用在创建对象的语句中——也就是说,只要你new一个对象出来,就会相应地调用这个类的构造方法。有参数的构造方法可以对对象进行初始化,但建议写了有参的构造方法后再写一个无参的空的构造方法,便于创建一个对象而不给它的成员变量赋初值。要注意,自己写了有参的构造方法,编译器是不会再补充一个缺省构造方法的。

2.向上转型的意义

这个跟java面向对象的特性有bai关,是多态的表现特点du
public static void fun(Person p)就像你这里的zhi这个参数,如果不用daoperson,而是用student或者allen

那你这个方法的可利用率就低了。但如果用person,那这个方法既可以匹配student,又可以匹配allen
再比如你的程序开始的时候确定有一个person型对象,但是要根据用户的选择来决定他要被实例化成哪种类型的。但如果你要分开来声明的话,那你就因为不确定性必须要声明两个变量,分别来等待实例化。

你这个程序里就只有public static void fun(Person p)这一个方法,如果说是分成两个单独的类,要改的话就只需要改这一个参数。。。。
但是后面做大程序的时候,往往好几十个方法,如果你不用person,而用了student,那你一旦在写程序的时候发现这里应该用allen而不是student,而你又没用person,那你这里一改就要改N多的地方,而且一改动很有可能会引发其他的错误,而且你这些方法很有可能又被其他的类所调用,那其他的类肯定也要跟着改啊,那这个改动量就非常大了。
比如说你的public static void fun(Student p)要传进来一个Allen类型的对象,必然报错,要改是吧~

但是如果你使用的person,那你只需要改动它实例化的语句就ok了,上面这么大的改动量现在只需要改一句话。
就是将
Person p=new Student();
改为
Person p=new Allen();
而你其他具体的方法啊,其他的相关类的代码都不用改!这就是他的意义。
敲黑板
向上转型虽然使代码变得简洁,体现了JAVA的抽象编程思想,但是也出现了上面提到的子类无法调用其独有的方法,这要怎么解决呢?所以就有了与之对应的向下转型,弥补了向上转型所带来的缺陷。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值