-
Java的访问控制修饰符有哪些?各有什么访问权限?请对照第7页ppt的表格分别写程序验证。
答:
(1)private表示私有,只有自己类可以访问
(3)protected表示可以被同一个包的类以及其他包中的它子类访问
(4)public表示可以被改项目的所有包中的所有类访问- 子类对于从父类继承的哪些属性与方法是可见的?请分别写程序进行验证。
答:子类继承了父类的所有属性和方法, 但只有public、protected的属性和方法在子类是可见的。
(1)
class Plane{
protected String name;
public void setName( String _name){
name = _name;
}
public String getName(){
return name;
}
}
class FighterPlane extends Plane{
private int missileNum;
public void setNum( int _missileNum){
missileNum = _missileNum;
}
public void fire( ){
missileNum -= 1;
}
}
class Run{
public static void main( String[ ] args){
FighterPlane p = new FighterPlane( ) ;
p.name = “su35”;
p.setName( “f35”);
system. out.println(p.getName( ));
p.fire();
}
}```
子类可以直接访问父类的protected属性和方法
(2)
class Plane{
private String name;
public void setName( String _name){
name = _name;
}
public String getName(){
return name;
}
}
class FighterPlane extends Plane{
private int missileNum;
public void setNum( int _missileNum){
missileNum = _missileNum;
}
public void fire( ){
missileNum -= 1;
}
}
class Run{
public static void main( String[ ]args){
FighterPlane p = new FighterPlane();
// p.name = “su35” ;
p.setName( “f35”);
system.out.println(p.getName( ));
p.fire() ;
}
}
子类不能直接访问父类的private属性和方法,可以调用父类的公共方法来间接访问私有属性 - 什么是组合?有什么作用?请举例说明。
答:组合即把一个类当成另一个类的组合成分,从而允许新类直接复用该类的public方法。
不破坏封装,整体类与局部类之间松耦合,彼此相对独立且具有更好的可扩展性。
class A{
…
}
class B{
A a //有A对象的引|用,可以看作与A对象的组合
…
} - 什么是重载?有什么作用?请构造各种重载示例。
答:重载:方法名称相同,参数类型或个数不同
注意:若方法名称相同,参数相同,返回类型不同,则编译不能通过
①
class Parent{
public int getScore(){
return 3;
}
public int getScore(int i){
return i;
}
}
类Parent中有两个getScore方法,它们的参数有所不同
②
public Audioclip getAudioclip(URL ur1) {
.… ;
}
public Audioclip getAudioclip(URL ur1,string name){
try {
//通过重新构造一个新的URL对象,之后调用上面的同名方法来实现功能。
return getAudioClip(new URL(ur1, name));
} catch (MalformedURLException e) {
return null;
}
}
③
public boolean addA11(collection c) {
return addA11(size, c);
//size是链表长度,此方法调用下面的方法,将传入对象插入到指定链表尾部
}
//index是链表的当前索引号
public boolean addA11(int index,collection c) {
…
} - 什么是覆写?有什么作用?覆写父类方法的条件有哪些?请举例说明。
答:子类对父类的同名方法(方法名称相同,参数相同,返回类型相同)重新进行定义,即在子类中定义与父类中已定义的同名而内容不同的方法。
(1)
- 子类对于从父类继承的哪些属性与方法是可见的?请分别写程序进行验证。
public int getScore()
{ return 3; }
public String getCountryName()
{ return “China”; }
}
class Son extends Parent i
public int getScore(){
return 4;
}
}
public class RunSon{
public static void main(String args[]){
Son s = new Son();
System.out. printLn(s.getScore());
System.out.println(s.getCountryName( ));
}
}```
输出结果:
4
China
②
class Super {
public Integer getLength() {
return new Integer(4); }
}
public class Sub extends Super {
public Long GetLength() {
return new Long(5); }
public static void main(String[] args) {
Super sooper = new Super();
Sub sub = new Sub();
System.out.println( sooper.getLength().toString() + “,”
+ sub.getLength().toString() );
}
}
输出结果:
4,4