-1

クラス B の宣言を記述します。クラスのメンバーは次のようになります。

m、整数。この変数は、クラス外のコード、またはクラス B を拡張するクラスからアクセスできません。

n、整数。この変数は、クラス B を拡張するクラス、またはクラス B と同じパッケージ内のクラスのみがアクセスできる必要があります。

setM、getM、setN、および getN。これらは、メンバー変数 m および n のミューテーターおよびアクセサー メソッドです。これらのメソッドは、クラス外のコードからアクセスできる必要があります。計算 これは public 抽象メソッドです。

次に、クラス B を拡張するクラス D の宣言を記述します。クラスのメンバーは次のようになります。q、double。この変数は、クラス外のコードからアクセスできません。r、ダブル。この変数は、クラス D を拡張するクラスまたは同じパッケージ内のすべてのクラスからアクセスできる必要があります。setQ、getQ、setR、および getR。これらは、メンバー変数 q および r のミューテーター メソッドとアクセサー メソッドです。これらのメソッドは、クラス外のコードからアクセスできる必要があります。calc は、スーパークラスの抽象 calc メソッドをオーバーライドするパブリック メソッドです。このメソッドは、q × r の値を返す必要があります。

これが私のコードです。凝視されているのは私が間違っていた部分です-

import java.io.*;
public class ClassB{

   ***private int m;
   public int n;***
  public setM(int minteger){
      m=minteger;
   }
   public void getM(){
      return minteger;
   }
   public setN(int ninteger){
      n=ninteger;
   }
   ***public void getN(){
      return ninteger
   }***
}

public class ClassD extends ClassB
{
   private double q;
   ***public double r;***

  public setQ(double qdouble){
      q=qdouble;
   }
   public void getQ(){
      return qdouble;
   }
   public setR(double rdouble){
      r=rdouble;
   }
   public void getR(){
      return rdouble
   }
}
   ***public abstract class calc{
   return r*q
   }***
4

4 に答える 4

2

作るint nととdouble rしてprotected 。同様に in write 、write 、in writeと書くgetN()必要がありますreturn n;getM()return m;getQ()return q;getR()return r;

抽象クラスは次のようになります。

 public abstract Calculator{
      public abstract calc();
 }

calcメソッドを使用/オーバーライドする場所について明確に言及していませんでした

于 2012-10-11T16:50:39.120 に答える
1

クラス B の宣言を記述します。

クラスのメンバーは次のようになります: m、整数。この変数は、クラス外のコードや、クラス B を拡張するクラスからはアクセスできません。 *

m は非公開にする必要があります (q も)

n、整数。この変数は、クラス B を拡張するクラス、またはクラス B と同じパッケージ内のクラスのみがアクセスできる必要があります。

n は保護する必要があります (r も)

計算 これは public 抽象メソッドです。

クラス B に抽象メソッドを含めるには、クラス B が抽象クラスである必要があります。return mクラス B は、クラス D で実装されている抽象メソッド calc を定義する必要があります。return ステートメントでプライベートまたはプロテクト メンバーを使用するように注意してくださいreturn minteger。計算に関しては:

    public abstract class Class_B{

    private int m;
    protected int n;

      //insert mutator and accessor methods

    public abstract double calc();
    }

    public class Class_D extends Class_B{

    private double q;
    protected double r;

      //insert mutator and accessor methods

    @Override
    public double calc() {
        return q*r;
    }
}
于 2012-10-11T17:35:51.520 に答える
0
class B
{

    private int m;

    protected int n;

    public int getM()
    {
        return m;
    }

    public void setM(int m)
    {
        this.m = m;
    }

    public int getN()
    {
        return n;
    }

    public void setN(int n)
    {
        this.n = n;
    }
}




class D extends B
{

    private double q;

    double r;

    public double getQ()
    {
        return q;
    }

    public void setQ(double q)
    {
        this.q = q;
    }

    public double getR()
    {
        return r;
    }

    public void setR(double r)
    {
        this.r = r;
    }
}

ここで、Java クラス宣言のいくつかのアクセス修飾子について説明したいと思います。それらの4つがあります:public/default/protected/private

ご存知かもしれません publicが、クラスのこのフィールドはどこからでもアクセス (読み取り/書き込み) できることを意味します。default存在するが明示的に使用されていない

int a;

前に他の修飾子がない場合は、default修飾子を使用することを意味します。これは、「クラス B を拡張するクラスまたはクラスと同じパッケージ内のクラスにのみアクセスできる」と言ったものです。

protectedこのクラスまたはこのクラスを拡張するクラスのみがアクセスできる特権です。

privateは Java で最も厳密な修飾子です。これは、フィールドまたはメソッドにクラスのオブジェクトのみがアクセスできることを意味します。このクラスを継承するクラスは、これらのフィールドまたはメソッドにアクセスできません。

もう 1 つ注意すべき点は、このメソッドが .xml でない場合、サブクラスはスーパー クラスのメソッドをオーバーライドできることprivateです。

于 2012-10-11T17:38:20.323 に答える
0

クラス B では m は他のクラスからアクセスできないため、private int m にする必要があります。int n と double r を保護されたものにします。getN アクセサーは

public int getN()
{
return n;
}

getM もある必要があります

public int getM()
{
return m;
}

getQ と getR の他の 2 つのアクセサ メソッドも、戻り値の型を double にする必要があります。抽象クラスは次のようになります

public abstract Calculator
{
public abstract cal();
}

アクセスの詳細については、Oracle のチュートリアルをご覧ください

于 2012-10-11T17:08:08.900 に答える