• 締切済み

初歩的な質問です

public class Count { public int read(){ return 1; } public void write(int count){ for (count = 0; count < 10; count++){ } } } というソースを書いて 変数countを同パッケージ内の別クラスで読み込むには 別クラス上においてどのように書けば良いのでしょうか? Count count = New Count(); くらいはわかるんですがそこから先がわからないのです。 初歩的な質問ですがよろしくお願いします。

  • ARCIE
  • お礼率75% (22/29)
  • Java
  • 回答数1
  • ありがとう数1

みんなの回答

  • kgi03334
  • ベストアンサー率26% (24/90)
回答No.1

まず、Countクラスにおいて変数countを宣言しなければいけませんが、それを,publicで宣言するか、privateで宣言するかを決める必要があります。 public int count; と宣言した場合、別のクラスから Count count = New Count(); int icount = count.count; というように変数を参照することができます。 private int count; と宣言した場合、別のクラスから上のコードのように参照することはできなくなります。 ですので、Countクラス内に変数countを参照するようなメソッドを作る必要があります。 たとえば、 void setcount(int i){ count = i; } int getcount(){ return count; } というような感じです。

ARCIE
質問者

お礼

無事変数を取得することができました。 ありがとうございました。

関連するQ&A

  • javaのカウントアップについて

    javaのEclipseを使っています。 カウントアップ後、表示する度に、 1, 2, 3, …と表示するプログラムを作りたいです。 プログラム例を教えて下さい。 public class Test { public static void main(String[] args) { Count count = new Count(); int scount = count.read(); count.write(scount); } } class Count { int count = 1; int read() { return count++; } void write(int scount) { System.out.println(scount); } }

  • カウントアップ

    以前質問させて頂いた続きなのですがまた詰まってしまったので 知恵をお借りしたいと思います。 File Count.java public class Count { public int read(){ return 1; } public void write(int count){ (1) } } File Test.java //カウント処理 Count count = new Count(); int scount = count.read(); contribute.setAttribute("no", ""+scount); scount = scount+1; count.write(scount); Test.javaファイルにおいて変数scountを使用する際に 1~10と読み込むたびに数字を一つづつ足していくという処理を行いたいのです。 (1)の部分にソースを書くことまでは指定されており、ここまでは間違えていないと言われているのですが(1)の部分をどんな風に作成すれば良いかがわかりません。 どのように書けば良いのでしょうか?? よろしくお願いします。

  • 継承について質問させていただきます

    Java初心者です。 privateなフィールドは継承されない と書籍にありましたが、理解に苦しんでおります。 具体例で申しますと、下記コードの cat.setCount(3); です。 CatクラスにはAnimalクラスの変数countは継承されないと考え、 エラーとなることを想像していたのですが。。。 なぜエラーとならないのでしょうか? 宜しければ、解りやすくご説明していただければ幸いです。 どうかよろしくお願いいたします。 ---------------------------------------------- class Animal{ private int count; int getCount(){ return count; } void setCount(int c){ this.count = c; } } class Cat extends Animal{ } public class test{ public static void main(String[] args){ Cat cat = new Cat(); cat.setCount(3); // ここが理解できません System.out.println(cat.getCount()); // ここも同様 } } ----------------------------------------------

    • ベストアンサー
    • Java
  • javaのクラスに関する初歩的な質問

    今日は javaの初心者ですが、javaのプログラムのクラスについて、お教えください。 後記の、javaのクラスのコードについてお聞きします。 1)サブルーチンvoid aaa()は、問題なくコンパイルできまして、変数aにアクセスできます。 2)クラスpublic class xxx extends test{}の中で、変数aにアクセスできません。 Q1)項2に記しました、クラスpublic class xxx extends test{}の中で、変数a   にアクセスする方法はあります?。 Q2) クラスxxxxをnewで使用する方法はありますか?    注) this.xxxx=new xxx(); <---コンパイルエラーになる 初歩的な質問ですが、ご回答頂けますと大変たすかります。 //===================== package pkg; import java.awt.BorderLayout; import java.awt.EventQueue; import javax.swing.JFrame; import javax.swing.JPanel; import javax.swing.border.EmptyBorder; public class test extends JFrame { private JPanel contentPane; public int a=9; //Launch the application. public static void main(String[] args) { EventQueue.invokeLater(new Runnable() { public void run() { try { test frame = new test(); frame.setVisible(true); } catch (Exception e) { e.printStackTrace(); } } }); } //Create the frame. public test() { setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); setBounds(100, 100, 450, 300); contentPane = new JPanel(); contentPane.setBorder(new EmptyBorder(5, 5, 5, 5)); contentPane.setLayout(new BorderLayout(0, 0)); setContentPane(contentPane); aaa(); // this.xxxx=new xxx(); <---コンパイルエラーになる } public class xxx extends test{ // a=2; //コンパイルエラーになる。 } void aaa(){ System.out.println("a="+a); } }

    • ベストアンサー
    • Java
  • 初歩的な質問ですみません。

    はじめまして。Javaの初心者です。 初歩的なことで、どうしてもわからないことがあります。 以下のような場合、 *************************************** class Oya { void func() { System.out.println("Oya"); } } class Ko extends Oya { Ko() { this.func(); } } class Main { public static void main(String[] args) { new Ko(); } } *************************************** Koクラスが初期化を完了していないのにもかかわらず func()メソッドを呼びさせてしまう理由がわかりません。なぜなのでしょうか?どうか教えてください。

    • ベストアンサー
    • Java
  • 静的動的とは?

    静的とはあらかじめ決められ変わらないもの 動的とは状況に応じて変わるものとあるのですが 以下の文のstaticの部分を見る限りcount変数は変化してるので動的と違うの?と混乱してるのですが なぜこのcount変数は静的なのか説明をお願いします int main(void) { count(); count(); return 0; } int count(void) { static int count; count++; printf("%d\n", count); return 0; } よろしくお願いします

  • 違うクラスからの変数の共有化

    一つのクラスの中にある変数の値を、二つの別なクラスから呼び出して、その二つのクラスのどちらから変数を参照しても同じ値が帰ってくるようにしたいのですが、いろいろ調べてもできなかったので質問させていただきますm(_ _)m // 共有化させたい変数を持つクラス // Var.java public class Var{  public static int i;  public Var(int i){ this.i = i; }  public Var(){}  public static void getI(){   return i;  } } //クラス1 //Class1.java public class Class1{  Var var = new Var(1); } //クラス2 //Class2.java public class Class2{  Var var = new Var();  System.out.println(var.getI()); } とした場合、Class1を実行し、次にClass2を実行すると、クラス1で定義した変数の値である 1 が戻ってくるようにしたいのですが、上記の方法では、Class2を実行すると結果は 0 になってしまいました。 まだまだ習い始めたばかりでいまいちstaticを使い切れていないと思います・・・ たとえば、PrintStreamクラスの public static final PrintStream out というのはどこから参照しても同じ結果なのでそのようなやり方で大丈夫だろうと思ったのですが・・・ このような方法では共有化させることはできないのでしょうか?またできないのでしたらほかのやり方がもしあった場合は教えていただきたいと思います。 どうかお願いします。

    • ベストアンサー
    • Java
  • javaの基本的な質問です

    以下ソースコード(ただし、testtest クラスはどちらかを採用) public interface taberu { int doit (); } class taberu1 implements taberu{ @Override public int doit () { return 1; } } public class taberu2 implements taberu{ @Override public int doit(){ return 2; } } public class testtest{ public static void main(String[] args){ taberu1 a = new taberu1(); taberu2 b = new taberu2(); int aaa = a.doit(); int bbb = b.doit(); System.out.println(aaa + " and " + bbb); } } public class testtest{ public static void main(String[] args){ taberu a = new taberu1(); //ここが違う taberu b = new taberu2(); //ここが違う int aaa = a.doit(); int bbb = b.doit(); System.out.println(aaa + " and " + bbb); } } 出力結果 1 and 2 質問は testtest クラスの //ここが違う と書かれているところです 出力結果はどちらも同じなのですが、その違いにより何が違うのか教えてほしいです。それと、抽象クラスにおける場合でもどのような違いがあるのか教えてほしいです>< インターフェースは振る舞いを記述すべきなので抽象クラスを使えと怒られそうなんですが簡単にしたかったのでこうしました。 本を読んでもあまりしっくりと理解できなかったので質問します。 基本的なことを質問してしまいすみません。

    • ベストアンサー
    • Java
  • Java クラスを使ったソート

    Javaで隣接交換法を用いて配列dataを昇順に並び替え、出力するプログラムを作成する。 ただし、ループ処理には、int型の変数は使わず、以下のCounterクラスを使用する。 という課題が出て、とり組んでみたのですが所々よく分からないので、お力添えしていただければと思います。 課題には下記のような条件が書いてありました。 配列data={54,76,32,89,45,11,8,54,29,67}; [クラス] Counter [インスタンス変数] int型の値を保持するcount [コンストラクタ] 引数で渡された値を初期値としてインスタンス変数に設定する。 引数を省略された場合、ゼロを設定する。 [メソッド] increment 値に1加算する decrement 値に1減算する compareTo 以下の処理を行う Counterの保持している値が引数に指定された値と 等しい場合、値0を返す。 Counterの保持している値が引数に指定された値より 小さい場合、0より小さい値を返す。 Counterの保持している値が引数に指定された値より 大きい場合、0より大きい値を返す。 get Counterの保持している値を添え字として、 引数で渡された配列の要素を取得します。 set Counterの保持している値を添え字として、 第1引数で渡された配列に第2引数で渡された値を設定します。 以下組んだものです。 ---- class Counter { int count = 0; Counter(int count) { this.count = count; } Counter() { this.count = 0; } public int get(int[] data) { return this.count; } public void set(int[] data, int count) { this.count = count; } public void increment() { this.count = count + 1; } public void decrement() { this.count = count - 1; } public int compareTo() { return count; } } public class Lesson09 { public static void main(String args[]) { Counter counter = new Counter(0); int[] data = {54, 76, 32, 89, 45, 11, 8, 54, 67}; counter.get(data); counter.set(data, 0); } } ---- とりあえず、compareToとsetとgetの部分をどう記述していいのかがよく分かりません。 よろしくお願いします。

    • ベストアンサー
    • Java
  • 「オブジェクト志向」の考えかたで質問します。

    「オブジェクト志向」の考えかたで質問します。 いろいろと調べると、 ・繼承 ・カプセル化 ・ポリモーフィズム を総称したのが、「オブジェクト」志向と理解しています。 このとき、 たとえば、 指定するクラスの生徒の情報をとりだすようなソースをつくりたい。 仮に、以下をかんがえてみました。 DB処理は、省いてます。 //実行DAOクラス public class StudentDAO extends StudentDBAccessor{ //指定するクラスに属する生徒をとりだす public List getStudentList(int classNumber){ return super.getStudentList(); } //sql文生成 protected String createSqlSelectStudentList(){ StringBuffer sb = new StringBuffer(); return sb.toString(); } //キーワードを設定 public void setDataSqlStudentList(){ } } public abstract StudentDBAccessor extends DBConnector{ protected List getStudentList(){   //DBそうさ } protected abstract String createSqlStudentList(); protected void setDataSqlStudentList(int classNumber); } //DB接続クラス public class DBConnector{   //省略 } //Beanクラス public class StudentFormBean{ private int studentNumber; private String studentName; public void setStudentNumber(int number){ this.studentNumber = number; } public int getStudentNumber(){ return studentNumber; } } よろしくおねがいします。

    • ベストアンサー
    • Java

専門家に質問してみよう