Ребят, объясните пожалуйста какой уровень доступа к фукциям поставить лучше в этом классе? этот класс содержит ещё кучу методов для ввода разных элементарных типов даннных и не только. Все методы опеределены как , private тут не идёт вроде, так как потом в эти методы вызываются из другого source файла следующим образом . Объясните чем нужно руководствоваться при расставлении уровня доступа к функциям?
| Код | import java.io.*; import java.math.BigInteger;
class Input { //******************************************************************************************************* protected static BigInteger readBigInt() { boolean test; String input ; BigInteger output = null; do{ test = true; //System.out.println("BigInteger input plz:" ); try { BufferedReader bufRead = new BufferedReader (new InputStreamReader (System.in)); input = bufRead.readLine(); output = BigInteger.valueOf(Long.valueOf(input)); } catch (IOException e) { test = false; System.out.print("Error while reading input line!\n"); } catch (NumberFormatException nfe) { test = false; System.out.print("Error while reading input line!\n"); } } while(!test); //System.out.println("BigInt " + output); return output; }
|
Написал я ещё один класс для простейшей работы со сложными числами:
| Код | public class complex { private double real,img; complex() // { real=0; img=0; } private complex(double w)// { this(); this.real=w; } complex(double w, double w1)// { this(w); this.img=w1; } //*************************************************************************** void setX(double wert) { this.real=wert; } void setY(double wert) { this.img=wert; } double getX() { return this.real; } double getY() { return this.img; } //********************************************************************************** complex add(complex zahl) { return new complex(this.real + zahl.getX(), this.img + zahl.getY()); } complex subst(complex zahl) { return new complex(this.real - zahl.getX(), this.img - zahl.getY()); } complex divide(complex zahl) { complex nzahl = new complex(); nzahl.real=(this.real*zahl.real+this.img*zahl.img)/(zahl.real*zahl.real+zahl.img*zahl.img); nzahl.img=(this.img*zahl.real-this.real*zahl.img)/(zahl.real*zahl.real+zahl.img*zahl.img); return nzahl; } complex multiply(complex zahl) { complex nzahl = new complex(); nzahl.real=this.real*zahl.real-this.img*zahl.img; nzahl.img=this.real*zahl.img+this.img*zahl.real; return nzahl; } //*************************************************************************************** public String toString() { return("algebraische darstellung: "+Math.round(real*1000)/1000.+" + "+Math.round(img*1000)/1000.+"i"); }
}
|
Так-же вопрос, поставить методам из этого класса protected или лучше public? |