d'entrée de 2 variables(la saisie de l'utilisateur par “Tampon Reader”) pour passer à une classe?
je suis un débutant en langage java et j'utilise de texte "pad". j'ai un problème avec mon programme simple. ma tâche est à l'entrée 2 valeurs et de montrer la "somme","différence","produit" et de "quotient" tout simplement. (simple non?) dans ce qui , ici-bas est la classe qui doit faire le travail de l'arithmétique. dans ce qui est "correct" comme je l'ai compilé.
public class mathclass
{
int x;
int y;
int total;
void add ()
{
total = x+y;
}
void sub ()
{
total = x-y;
}
void multi ()
{
total = x*y;
}
void div ()
{
total = x/y;
}
}
Et ici est le programme principal qui est censé être l'entrée et la sortie du programme.
mon problème, c'est que je ne peux pas passer les 2 variables (num1 et num2) à "mathclass"
j'ai fait des recherches sur la façon de passer de 2 variables à une autre classe. mais il n'en est rien, même à la mienne que j'ai. j'ai utilisé certains, comme la mise "privé ou public" sur les variables.
mon professeur a dit d'utiliser le BufferedReader pour l'entrée. et je vais avoir un moment difficile la façon d'obtenir ce programme de droite. (désolé si j'ai eu mal en anglais(si je me trompe. ))
import java.io.*;
public class mathmain
{
static BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
public static void main(String[]args)throws IOException
{
mathclass math1 = new mathclass();
System.out.print("Enter 1st Number :");
num1 = Integer.parseInt(br.readLine());
System.out.println(" ");
System.out.print("Enter 2nd Number :");
num2 = Integer.parseInt(br.readLine());
System.out.println(" ");
System.out.println(" ");
System.out.println(" ");
System.out.println(" ");
math1.add();
{
System.out.print("Sum : ");
System.out.println(math1.total);
}
System.out.println(" ");
math1.sub();
{
System.out.print("Difference : ");
System.out.println(math1.total);
}
System.out.println(" ");
math1.multi();
{
System.out.print("Product : ");
System.out.println(math1.total);
}
System.out.println(" ");
math1.div();
{
System.out.print("Quotient : ");
System.out.println(math1.total);
}
}
}
- Deux très différents problèmes à l'aide d'un BufferedReader pour obtenir les valeurs à partir de l'utilisateur du programme, et pour obtenir des valeurs à partir de votre méthode main de la classe est en train de faire le travail. Comme @aioobe dit, yo devez transmettre ces valeurs. Sinon ce champs x et y de l'objet créé rester avec les valeurs initiales par défaut (0) et rien ne se passe. Je veux dire. Si vous ne dites pas: laissez le champ x de la math1 objet a la valeur de num1 a récemment obtenu de valeur, il ne sera pas comme par magie le faire.
- mon problème est que je ne sais pas comment faire pour les passer. mon professeur ne m'a pas enseigné comment faire passer des valeurs. mais maintenant tout est ok. ce que je suis en manque, c'est un configurer un agruments.
Vous devez vous connecter pour publier un commentaire.
C'est vraiment pas clair ce que vous essayez de faire ici. (Pourquoi ne pas
add
prendre deux arguments, par exemple?)Peut-être votre après quelque chose comme ceci:
Cependant, je vous encourage à utiliser les valeurs de retour et utiliser des paramètres:
et ensuite utiliser la classe comme
Scanner s = new Scanner(System.in); num1 = s.nextInt(); num2 = s.nextInt();
.Vous devriez prendre un certain regard sur la façon de coder en Java parce que vous allez dans le mauvais sens.
Soit vous créez un constructeur pour initialiser x & y, soit vous les mettez dans la méthode add(x,y), ce qui vous amènerait à faire de la méthode statique et supprimer les références de x & y de la classe. En va de même pour le total qui devrait être le retour de votre fonction.
Essayer cela,
Utiliser Deux Paramètre de Constructeur pour mathmain classe...
Veuillez utiliser la Majuscule pour la première de l'alphabet du nom de la classe (par exemple: MathMain),
et oui, l'utilisation de Chameau Cas pour l'écriture de la Classe, les Variables, Méthode,etc Noms en java.
Puisque vous êtes débutant, je ne vais pas pointer les défauts de conception. Votre problème vient de la façon dont vous utilisez votre lire des valeurs. Vous lire des valeurs dans num1 et num2, mais vous n'avez jamais mettre dans votre mathclass objet:
math1.x = num1;
math1.y = num2;
Conformément à ce que aioobe dit, vous devriez regarder java règles de conception pour vous aider à créer robuste, classes utiles. Je voudrais aussi vous encourager à encapsuler vos classes et utiliser paramètres et les valeurs de retour chaque fois que possible.
Bonne chance dans l'apprentissage de java, et j'espère que cela a aidé!