odwołanie do innej klasy

0

Mam dwie klasy SitoErastotenesaTest i SitoErastotenesa każda w osobnym pliku. potrzebuje teraz w klasie SitoErastotenesaTest wywołać konstruktor i metodę z klasy SitoErastotenesa. I drugie pytanie czy jak mam klasy w dwóch plikach to trzeba to jakos specjalnie kompilować.

import java.lang.*;


public class SitoErastotenesaTest
{


        public void main(String[] args)
        {
                int max;               
               
               
                for(int i = 0; i < args.length; i++)
                {
                        int n=Integer.parseInt(args[i]);       
                                               
                        if(n > max) max=n;     
                }

                SitoErastotenesa(max); //chcialbym wywolac ten konstruktor z klasy SitoErastotenesa
               
               
                for(int i = 0; i < args.length; i++)
                {
                        int m=Integer.parseInt(args[i]);       
                                               
                        //a tu wywołać metode z tej samej klasy
                        if(prime(m)) System.out.println(args[i] + " - jest liczba pierwsza");
                        else System.out.println(args[i] + " - jest liczba zlozona");   
                }

        }

}
import java.lang.*;

public class SitoErastotenesa
{
        private boolean tablica[];
       
        SitoErastotenesa(int n)
        {
                int i,j,zakres;
                this.tablica= new boolean[1000];

               
                zakres = (int) Math.floor(Math.sqrt(n));

                //inicjuj tablice
                for (i=2; i<=n; i++) this.tablica[i]=true;

                for(i=2;i<zakres;i++) // sito
                {        
                        if(this.tablica[i])
                        {
                                for(j=i+i;j<n;j+=i)
                                {
                                        this.tablica[j]=false;
                                }
                        }
                }
               
        }


        public boolean prime(int m)
        {
               
                if(this.tablica[m]) return true;
                else return false;

        }        
}
0
  1. Nie musisz kompilować specjalnie, jak oba pliki źródłowe są w jednym katalogu, to javac *.java
import java.lang.*;


public class SitoErastotenesaTest
{


        public void main(String[] args)
        {
                int max;               
               
                
                for(int i = 0; i < args.length; i++)
                {
                        int n=Integer.parseInt(args[i]);       
                                               
                        if(n > max) max=n;     
                }
                // po wywołaniu  java SitoErastotenesaTest 145 2004 100000 dziad   użytkownik zobaczy mało efektowny  
                //komunikat o błędzie, ja bym zrobił tak
                int max=2; // albo jakaś inna dolna granica
                int n;
                for(int i = 0; i < args.length; i++)
                {
                        try
                        {
                             n=Integer.parseInt(args[i]); 
                             if(n > max) max=n;     
                        }      
                                               
                        catch (NumberFormatException){}  
                }

                SitoErastotenesa sito=new SitoErastotenesa(max); //chcialbym wywolac ten konstruktor z klasy 
                                                                                  //SitoErastotenesa
               
               
                for(int i = 0; i < args.length; i++)
                {
                        int m=Integer.parseInt(args[i]);       
                                               
                        //a tu wywołać metode z tej samej klasy
                        if(sito.prime(m)) System.out.println(args[i] + " - jest liczba pierwsza");
                        else System.out.println(args[i] + " - jest liczba zlozona");   
                }

        }

}
/code>
3. 
```java
import java.lang.*;

jest zbyteczne, pakiet java.lang jest importowany automatycznie
4. uparty jesteś, ale jednak zmień

        public boolean prime(int m)
        {               
                return tablica[m]);
        } 
0

dzieki za pomoc. Masz racje tak powinno byc jak napisales zwracam honor. Nie jestem taki uparty po prostu to przeoczylem, ale juz poprawilem :) pozdro

1 użytkowników online, w tym zalogowanych: 0, gości: 1