编程语言
首页 > 编程语言> > Java论述4

Java论述4

作者:互联网

1. Java的访问控制修饰符有哪些?各有什么访问权限?

权限修饰符同一个类同一个包不同包的子类不同包的非子类
privateY
(default)YY
protectedYYY
publicYYYY

2. 子类对于从父类继承的哪些属性与方法是可见的?
以public,protected修饰属性与方法的可见;
在同一个包内,默认访问权限的父类成员可见;

3. 什么是组合?有什么作用?请举例说明
组合:某个类作为另一个类的数据成员
作用:实现类的复用,是编程逻辑更自然

//端点
public class Point   { 
  private int x,y;
  public Point(int x,int y)  {
      this.x = x;
      this.y = y;
  }  
  public int GetX() { return x; }  
  public int GetY() { return y; }
}

//线段
class Line    {  
    private Point p1,p2;   //两端点  
    Line(Point a, Point b)  {    
        p1 = new Point(a.GetX(),a.GetY());    
        p2 = new Point(b.GetX(),b.GetY());  
    }
}

4. 什么是重载?有什么作用?请构造各种重载示例。
重载:同名的方法,参数个数,类型,顺序不同;
作用:通过相同的方法名,程序员只需通过提供不同的参数个数,类型,顺序调用不同功能的方法,编译器会明确。这些方法在大体功能上相近,但针对不同参数实现稍有区别。

public class OverloadDemo {
 
    //1. test()方法第一次重载,没有参数
    void test() {
        System.out.println("No parameters");
    }
    //2. test()方法第二次重载,一个整型参数
    void test(int a) {
        System.out.println("a: " + a);
    }
    //3. test()方法第三次重载,两个整型参数
    void test(int a, int b) {
        System.out.println("a and b: " + a + " " + b);
    }
    //4. test()方法第四次重载,一个双精度型参数
    double test(double a) {
        System.out.println("double a: " + a);
        return a * a;//返回a*a的值
    }
}
public class Overload {
   public static void main(String args[]){
        OverloadDemo ob=new OverloadDemo();
        double result;
        ob.test();            //定义的是test()方法
        ob.test(10);             //定义的是test(int a)方法
        ob.test(10,20);            //定义的是test(int a,int b)方法
        result=ob.test(123.23);       //定义的是test(double a)方法
        System.out.println("result of ob.test(123.23): "+result);   //输出result的值
   }
}
 
运行结果:    No parameters
a: 10
a and b: 10 20
double a: 123.23
result of ob.test(123.23): 15185.6329

5. 什么是覆写?有什么作用?覆写父类方法的条件有哪些?请举例说明。
覆盖:子类对父类的同名方法(方法名称相同,参数相同,返回类型相同)重新进行定义
作用:针对子类特性,重写同名方法

class Parent {
   public int getScore()
   { return 3; }
   public String getCountryName()
   { return “China”; }
}
class Son extends Parent {
    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()); 
     }
}

out---
4
China

标签:Java,int,方法,println,test,论述,public,out
来源: https://blog.csdn.net/nebois/article/details/120833710