Ich habe eine Java-Klasse für mein Klassenprojekt geschrieben, und alle meine Methoden sind void, und ich mache im Grunde nur die Methoden in meiner Hauptmethode aufrufen.Wie man Code flexibler macht
Der Code hilft den Studenten im Grunde, ihr monatliches Einkommen in Bezug auf Miete und Darlehen Zahlungen zu verwalten.
Kann mir jemand in die richtige Richtung zeigen, was ich falsch mache? Irgendwelche Ratschläge in Bezug auf Codierungsgewohnheiten?
der Klassencode:
import java.io.*;
import java.util.*;
public class Finance{
private double rentExpenses, tuition, totalCost, totCost, rent;
private double payInput;
private boolean status, liveWithParent;
private int pay;
//totalCost=Final cost per month
//totCost=cost of tuition and rent per month
//Living with parents?
public void liveWithParents(){
Scanner in=new Scanner(System.in);
System.out.println("Are you living with your parents?");
String parents= in.nextLine();
if(parents.charAt(0)=='y' || parents.charAt(0)=='Y'){
status=true;}
else{
status=false;}}
//If yes, do you pay them rent?, if yes how much? else -, else How much is your monthly rent anyway?
public void amountRent(){
double rent;
char valid;
String validIn;
Scanner in=new Scanner(System.in);
if(status){
System.out.println("Do you need to pay them rent?");
validIn=in.nextLine();
valid= validIn.charAt(0);
if(valid=='y' || valid=='Y'){
System.out.println("How much is your rent?");
rent=in.nextDouble();}}
else{
System.out.println("How much is your monthly rent?");
rent=in.nextDouble();}}
//What is your college tuition, $/term
public void collegeTuition(){
System.out.println("What what is your college tuition in $ per term?");
Scanner in=new Scanner(System.in);
tuition= in.nextDouble();}
//Total cost of tuition and rent per month
public void getMonthlyCost(){
totCost= rentExpenses + tuition/3.75;
System.out.println("Your rent expenses and college tuition are: $"+totCost+" per month");}
//Method of paying for expenses
public void payMethod(){
Scanner in=new Scanner(System.in);
System.out.println("How will you pay for your expenses?"
+ "\n 1 -Savings\n 2 -Loans\n 3 -Freelance Work");
pay=in.nextInt();
while(pay<=0 || pay>3){
System.out.println("You need to enter a number coresponding to the three choiches.\n\t Try again:");
System.out.println("How will you pay for your expenses?"
+ "\n 1 -Savings\n 2 -Loans\n 3 -Freelance Work");
pay=in.nextInt();}}
//Gets the amount of savings the user has and converts
//that value to a monthly value
public void inputPayMethod(){
Scanner in=new Scanner(System.in);
if(pay==1){
System.out.println("What amount of savings do you have in total for the school year?");
payInput=in.nextDouble();
payInput=payInput/9;}
else if(pay==2){
System.out.println("What amount of loans did you acquire for this school year?");
payInput=in.nextDouble();
payInput=payInput/9;}
else if(pay==3){
System.out.println("How much revenue does your Freelane business get per month?");
payInput=in.nextDouble();}}
//Calculates the total cost that the user needs
//for renting and tuition solely
public void getTotalCost(){
totalCost=(payInput/3.75)-(rentExpenses + tuition/4.348);}
//Outputs the total cost
public void outputCost(){
System.out.println("Your balance per month after expenses is: $"
+totalCost);
if(totalCost<0){
System.out.println("You still need $"+(-totalCost)+" per months");}
if(totalCost>0){
System.out.println("In other words you should be A-O-KAY");}
//Balance calculation for an entire school year
System.out.println("For an entire school year, your expenses would be: "+
(totalCost*2));}
//Create a file with the information entered
//and the information processed
public void outputFile() throws IOException{
String payFileOutput=null;
Scanner in=new Scanner(System.in);
System.out.println("Enter the name of the file you wish to store this"+
"information in: ");
String fileName= in.nextLine();
PrintWriter file= new PrintWriter(fileName);
file.println("Your rent expenses are :"+rentExpenses);
file.println("Your college tuition in dollars per month is:"+tuition);
file.println(" -----");
file.println("Your rent expenses and college tuition are :"+(rentExpenses + tuition));
if(pay==1)
payFileOutput="Savings";
else if(pay==2)
payFileOutput="Loans";
else if(pay==3)
payFileOutput="Freelance Work";
else
;
file.println("\n\nYou choose "+payFileOutput+"as your income source");
file.println("Your balance per month after expenses is: $"+totalCost);
if(totalCost<0){
file.println("You still need $"+(-totalCost)+"per month");}
if(totalCost>0){
file.println("\n\n\nYour budget seems good");}
file.close();
System.exit(0);}
}
//The main method: import java.io.*; public class UseClass { /** * @param args */ public static void main(String[] args) throws IOException{ Finance fin=new Finance(); fin.liveWithParents(); fin.amountRent(); fin.collegeTuition(); fin.getMonthlyCost(); fin.payMethod(); fin.inputPayMethod(); fin.getTotalCost(); fin.outputCost(); fin.outputFile(); } }
Danke
'Kann mir jemand in die richtige Richtung zeigen, was ich falsch mache? Wie sollen wir wissen, was Sie falsch machen, ohne eine Fehlermeldung, einen StackTtrace oder eine Beschreibung dessen, was Sie erwarten? du siehst? – Falmarri
Ich glaube, dass Andrei sagt, dass er nicht glaubt, dass sein Ansatz gemäß OO-Paradigmen und von der Gemeinschaft beobachteten Kodierungsstandards akzeptabel ist. – Joel
Genau Joel. Ich möchte nur etwas Input von erfahreneren Benutzern bekommen, wie Dinge getan werden sollten. Aber ich denke, dieses Problem wird in zwei Kapiteln aus meinem aktuellen Kapitel gelöst, in dem das Buch Klassen und Methoden neu betrachtet ... aber ich würde trotzdem gerne wissen, wie ich meinen Code flexibler gestalten kann. –