2016-03-25 6 views
0

Я просто принял, что все мои программы, которые я сделал, должны начать с этого. Затем я рассмотрел пример №2 here относительно генерации случайного числа.Что означает public static void? Что такое класс?

import java.util.Random; 

/** Generate random integers in a certain range. */ 
public final class RandomRange { 

    public static final void main(String... aArgs){ 
    log("Generating random integers in the range 1..10."); 

    int START = 1; 
    int END = 10; 
    Random random = new Random(); 
    for (int idx = 1; idx <= 10; ++idx){ 
     showRandomInteger(START, END, random); 
    } 

    log("Done."); 
    } 

    private static void showRandomInteger(int aStart, int aEnd, Random aRandom){ 
    if (aStart > aEnd) { 
     throw new IllegalArgumentException("Start cannot exceed End."); 
    } 
    //get the range, casting to long to avoid overflow problems 
    long range = (long)aEnd - (long)aStart + 1; 
    // compute a fraction of the range, 0 <= frac < range 
    long fraction = (long)(range * aRandom.nextDouble()); 
    int randomNumber = (int)(fraction + aStart);  
    log("Generated : " + randomNumber); 
    } 

    private static void log(String aMessage){ 
    System.out.println(aMessage); 
    } 
} 

Я заметил, что это имело общедоступную статическую пустоту и частную статическую пустоту. Почему бы просто не объединить код в одну вещь под публичной статической пустотой? Что еще более важно, что это значит? Я занимался исследованиями и часто видел слово «класс». Что такое класс? Надеюсь, мой вопрос отвечает рекомендациям, это мой первый пост. Благодарю.

+3

Вы должны рассмотреть чтение [учебник] (http://docs.oracle.com/javase/tutorial) – fge

+0

Извините, но thhis это ** ** далеко за рамки этого места.Вы просите об основах ООП и Java, я бы предложил просто прочитать подходящие книги или пройти курс ... –

+0

https://en.wikipedia.org/wiki/Class_%28computer_programming%29 – HungPV

ответ

0

Следующая не совсем верно, это очень упрощено:

В основном один класс равен одному файлу. Даже в этом случае они могут получить доступ друг к другу (если в том же проекте/папки) Здесь 3 Пример занятия:

Класс Withe основной метод:

package ooexample; 

    public class OOExample { 

    public static void main(String[] args) { 
     int min = 2; 
     int max = 101; 

     // use of static method 
     int randomNumberA = MyMath.generateRandomNumber(min, max); 

     // use of non static method 
     RandomNumberGenerator generator = new RandomNumberGenerator(); 
     int randomNumberB = generator.randomNumber(min, max); 

     /** 
     * does not work, method is private, can not be accessed from an outise class 
     * only RandomNumberGenerator can access it 
     */   
     // generator.printSomeNumber(123); 
    } 
} 

класса со статическим методом. Этот метод может быть доступен путем записи класса name.nameOfStaticMethod (...) см. Основной метод.

package ooexample; 

public class MyMath { 

    public static int generateRandomNumber(int min, int max) { 
     return min + (int) (Math.random() * ((max - min) + 1)); 
    } 
} 

Класс без статического метода. Вы должны создать класс в основном методе, используя новый оператор и назначить созданный класс переменной. Затем вы можете использовать переменную для доступа к PUBLIC-методам этого класса. Вы не можете получить доступ к приватным методам где-либо еще, кроме самого класса. См. Основной метод.

package ooexample; 

public class RandomNumberGenerator { 

    public RandomNumberGenerator() { 

    } 

    public int randomNumber(int min, int max) { 
     int randomNumber = min + (int) (Math.random() * ((max - min) + 1)); 
     printSomeNumber(randomNumber); 

     return randomNumber; 
    } 

    private void printSomeNumber(int number) { 
     System.out.println(number); 
    } 
} 
2

Предположим, вы попросили здесь, потому что вам нужен краткий ответ, который дает вам некоторую интуицию, а не глубокое погружение в OOP, которое вы можете извлечь из учебника.

A class - это шаблон, из которого создаются объекты. Однако, пока вы не поймете OOP, class - это всего лишь необходимая обертка вокруг императивного кода, который вы пишете, потому что Java требует, чтобы весь код жил внутри класса.

public означает, что метод общедоступен. Методы, определенные в классах, отличных от этого, могут получить к нему доступ. private имеет противоположное значение.

static означает, что это функция уровня класса, не привязанная к какому-либо конкретному экземпляру класса.

void означает, что метод ничего не возвращает.

Вы можете, конечно, поместить весь код под один метод, но это имеет как минимум следующие проблемы.

  1. Код сложнее читать, поскольку цель кода скрыта в деталях реализации.
  2. Код сложнее повторного использования, потому что вы должны копировать и вставлять каждый раз, когда вам нужна одна и та же функциональность в нескольких местах.
Смежные вопросы