这里有几道java题,求大神帮忙解答下好吗?非常感谢!
2.要自定义类不能够被其他包中的类直接访问,需要用到
3.包的导入使用
4.接口的关键字是
5.自定义异常发生时,抛出异常使用
6.this和super的相似及区别
7.接口与抽象类的区别
8.重载与覆盖的特点及区别
9.throw 与throws特点及区别 展开
推荐于2016-03-01 · 知道合伙人软件行家
2、自定义类不能被其他包中直接访问,可以通过设置这个类的访问范围,然后再在其他包中的类中定义出这个类
3、包导入使用这个不需要解释,很简单,就是你用到哪个类,就需要将那个导入的类所在的包路径导入
4、接口关键字:implements
5、抛出异常可以两种方法:一种是try ... catch... 抛异常,一种是直接在类名后面throws抛异常
6、都能够表示当前,区别在于super可以调用父类
7、接口和抽象类的区别在于,实现接口的话,必须实现里面所有的抽象方法,而抽象类中可以存在非抽象的方法
8、覆盖就是将原来的方法重新定义重新写,重载区别于覆盖就对了
9、都是抛异常,在这里就不详细解释了。/抠鼻
实例化对象,也就是new的时候;
java有四层权限,private(类内访问),默认的是包内访问,还有public(挎包),protected(子类);
import
implements
不知所云
super和this的异同:
http://blog.csdn.net/anmei2010/article/details/4093118
1)super(参数):调用基类中的某一个构造函数(应该为构造函数中的第一条语句)
2)this(参数):调用本类中另一种形成的构造函数(应该为构造函数中的第一条语句)
3)super: 它引用当前对象的直接父类中的成员(用来访问直接父类中被隐藏的父类中成员数据或函数,基类与派生类中有相同成员定义时如:super.变量名 super.成员函数据名(实参)
4)this:它代表当前对象名(在程序中易产生二义性之处,应使用this来指明当前对象;如果函数的形参与类中的成员数据同名,这时需用this来指明成员变量名)
5)调用super()必须写在子类构造方法的第一行,否则编译不通过。每个子类构造方法的第一条语句,都是隐含地调用super(),如果父类没有这种形式的构造函数,那么在编译的时候就会报错。
6)super()和this()类似,区别是,super()从子类中调用父类的构造方法,this()在同一类内调用其它方法。
7)super()和this()均需放在构造方法内第一行。
8)尽管可以用this调用一个构造器,但却不能调用两个。
9)this和super不能同时出现在一个构造函数里面,因为this必然会调用其它的构造函数,其它的构造函数必然也会有super语句的存在,所以在同一个构造函数里面有相同的语句,就失去了语句的意义,编译器也不会通过。
10)this()和super()都指的是对象,所以,均不可以在static环境中使用。包括:static变量,static方法,static语句块。
11)从本质上讲,this是一个指向本对象的指针, 然而super是一个Java关键字。简单来说,
接口是公开的,里面不能有私有的方法或变量,是用于让别人使用的,而抽象类是可以有私有方法或私有变量的,
另外,实现接口的一定要实现接口里定义的所有方法,而实现抽象类可以有选择地重写需要用到的方法,一般的应用里,最顶级的是接口,然后是抽象类实现接口,最后才到具体类实现。
还有,接口可以实现多重继承,而一个类只能继承一个超类,但可以通过继承多个接口实现多重继承,接口还有标识(里面没有任何方法,如Remote接口)和数据共享(里面的变量全是常量)的作用重载是可使函数、运算符等处理不同类型数据或接受不同个数的参数的一种方法,关于重载一词在词义上有两种不同的说法:
重载是一种多态(如C++),有四种形式的多态:
1.虚函数多态
2模板多态
3重载
4转换
所谓的动态和静态区分是另一种基于绑定时间的多态分类,严格来说,重载是编译时多态,即静态多态,根据不同类型函数编译时会产生不同的名字如int_foo和char_foo等等,以此来区别调用。故重载仍符合多态定义——通过单一标识支持不同特定行为的能力,只是重载属于静态多态,而不是通过继承和虚函数实现的动态多态。
重载和多态无关,真正和多态相关的是覆盖。
当派生类重新定义了基类的虚拟方法后,基类根据赋给它的不同的派生类引用,动态地调用属于派生类的对应方法,这样的方法调用在编译期间是无法确定的。因此,这样的方法地址是在运行期绑定的(动态绑定)。
重载只是一种语言特性,是一种语法规则,与多态无关,与面向对象也无关。
不过针对所谓的第二种重载,有一个专门的名词--重写或重定义。重载与重写的区别就在于是否覆盖,重写一般多发生在不同的类且存在继承关系之间,而重载多是在一个类里或者一块代码段里。
特点:
由于重载可以在同一个类中定义功能类似的函数,这给程序员管理类的相似函数提供了极大的方便。例如,在一个定义圆的类中,需要设定圆心和半径来确定一个圆对象,程序员不需要设定setRadius(float r)和SetPoint(float x,float y)两个不同名函数,而只需要设定一个CSetCicle函数名就够了。在这个简单的例子中重载并没有明显的优势,可是当一个类中相似功能函数有几十、上百个的时候,重载的优势就显现出来了,这时程序员不需要去记这么繁多的函数名,可以把更多的精力放在程序本身上。重载的方法只属于子类。、throws是用来声明一个方法可能抛出的所有异常信息
throw则是指抛出的一个具体的异常类型。
通常在一个方法(类)的声明处通过throws声明方法(类)可能抛出的异常信息,而在方法(类)内部通过throw声明一个具体的异常信息。
throws通常不用显示的捕获异常,可由系统自动将所有捕获的异常信息抛给上级方法;
throw则需要用户自己捕获相关的异常,而后在对其进行相关包装,最后在将包装后的异常信息抛