2016-07-22 4 views
0

Я все еще немного новичок в Java, и я мог бы использовать некоторую помощь с этим кодом, пожалуйста, до сих пор я писал методы и то, что должны делать все методы, но я честно не знаю, как сделать эффект перегрузки и заставить его работать так Я был бы признателен за простое объяснение.Методы перегрузки в Java?

import java.util.Scanner; 
public class Assignment3 { 
static Scanner input = new Scanner(System.in); 
public static void main(String[] args) { 
    // TODO Auto-generated method stub 
    myMethod(); 
} 
public static void myMethod(){ 
    System.out.println("Welcome to Java 1 "); 

} 
public static void myMethod(String msg, int counter){ 
    System.out.println("Enter your custom messege please: "); 
    msg = input.nextLine(); 

    System.out.println("Please enter how many times do you wish to print the messsege: "); 
    counter = input.nextInt(); 

    for (int i = 0; i <= counter; i++){ 
     System.out.println(msg); 
    } 
} 
public static void myMethod(int lowerLimit, int upperLimit){ 

    System.out.println("Please enter a lowerlimit: "); 
    lowerLimit = input.nextInt(); 

    System.out.println("Please enter an upperlimit: "); 
    upperLimit = input.nextInt(); 

    System.out.println("Press 1 for ascending order: "); 
    System.out.println("Press 2 for descending order: "); 
    System.out.println("Make your selection"); 
    int user1 = input.nextInt(); 
    System.out.println("How frequent do you wish the messege to be printed"); 
    int interval = input.nextInt(); 

    switch(user1){ 
    case 1: 
     for(int counter = lowerLimit; counter <= upperLimit; counter += interval){ 
      System.out.println(counter); 
     } 
     break; 
    case 2: 
     for(int counter = upperLimit; counter <= lowerLimit; counter -= interval){ 
      System.out.println(counter); 
     } 
     break; 
     default : 
      System.out.println("Something went wrong !!!"); 
    } 

} 
public static void myMethod(double number1, double number2){ 

    number1 = (Math.random() * 100); 
    number2 = (Math.random() * 100); 
    double product = (number1 * number2); 

    System.out.println("The product of " + number1 + " and " + number2 + " is " + product); 
} 
] 

ответ

0

В ответ на ваш комментарий:

Вам просто нужно позвонить в двух других «MyMethod» в главном, с соответствующими подписями:

public static void main(String[] args) { 
     // Call without argument 
     myMethod(); 

     // Call with String and integer 
     myMethod("test", 42); 

     // Call with Integer and Integer 
     myMethod(42, 666); 
    } 

Тогда будут правые. Отвечает ли это на ваш вопрос ?

+0

Большое спасибо, что помогло объяснить и исправить код, я думаю, мне нужно больше практики и рытья, чтобы это исправить. Еще раз спасибо вам – Angelos

1

Ваш метод myMethod уже перегружен. Перегруженный метод - это всего лишь метод, который может принимать два или более разных набора параметров. (См https://docs.oracle.com/javase/tutorial/java/javaOO/methods.html)

Например:

public void foo(int a) { 
    System.out.println("Printing out the int " + a); 
} 

public void foo(double a) { 
    System.out.println("Printing out the double " + a); 
} 

Foo имеет два возможных наборы параметров, который принимает int и тот, который принимает double. Теперь, если вы сделаете это:

int a = 10; 
double b = 10.5; 

foo(a); 
foo(b); 

Он вернется:

Printing out the int 10 
Printing out the double 10.5 
+0

Я бы добавил, что это применимо к методам _static_ и _instance_ (у OP есть статические методы). Также укажите ссылку из документов Oracle или Java Lang Spec. –

+0

Спасибо, сэр за ваш ответ, но я думаю, я не объяснил свою проблему. В этом коде отсутствует часть, отвечающая за вызов методов по их функции, так как я не знаю, как сказать компилятору вызывать метод, который отвечает за определенную функцию, все, что я смог получить от этот код при попытке запустить это сообщение, в котором говорится: Добро пожаловать в java 1 – Angelos

+0

Ну, это потому, что это единственный метод, который вызывается в вашем основном методе: myMethod(); ! Другие методы никогда не называются – Tim

0

Выше пост имеет свой ответ, Ваш метод MyMethod уже перегружен, но метод Перегрузка это функция, которая позволяет классу иметь два или более метода с одинаковым именем, если их списки аргументов различны. У вас есть метод, который принимает различные параметры с различными типами данных

 Смежные вопросы

  • Нет связанных вопросов^_^