20 мая 2009 г. Java ООП

Java. Наша первая программа

java

Продолжение статьи "Java. Установка среды разработки и Eclipse IDE", в которой мы напишем нашу первую программу на языке Java.

В Java для работы с объектами используются ссылки на объекты. Объекты хранятся в куче (пул памяти общего назначения, по скорости уступает стеку), а данные с примитивным типом хранятся в стеке (область хранения данных в RAM, обращение к данным происходит по указателю стека).

String x = "test";

В x храниться ссылка на объект String со значением "test".

Объекты из кучи удаляются сами, сборщиком мусора, так что делать это явно нет необходимости.

Типы данных

В Java существую так же и примитивные типы данных: boolean, char, byte, short, int, float, long, double и void. Данные этих типов хранятся в стеке. Все числовые значения являются знаковыми!

Остальные типы данных являются классами (String, Character и т.д.) и производные их объекты хранятся в куче.

Класс и члены класса

Имя класса должно начинаться с заглавной буквы. Имена методов и свойств (переменных класса) должны начинаться в нижнем регистре, за исключением конструктора класса, который имеет одинаковое имя с именем класса.

UPD: Все что сказано выше, касается стиля, никто вам не запретит начинать имя класса с прописной буквы...

public class TestClass
{
    public static void main(String[] args)
    {
        testMethod();
    }

    public static void testMethod ()
    {
        System.out.print("Date: " + new Date());
    }

    int x = 1;
    double y;
}

public class TestClass2
{
    public TestClass2() {
        // Конструктор
    }
}

Статический метод main запускается первым, это так называемая точка входа программы.

Конструктор никогда ничего не возвращает! Он необходим для инициализации объекта.

Статические члены класса в Java принято вызывать в таком виде:

Class.function() и Class.var

а для нестатических членов класса не доступна возможность обращаться к членам по имени класса, доступна только при обращению к объекту:

Class var = new Class();
Class.method(); // не доступно
var.method(); // доступно

Инкапсуляция

Сокрытие данных осуществляется при помощи трех ключевых слов:

  1. public - член класса доступен для всех

  2. private - доступ к члену имеют только члены класса

  3. protected - доступ имеют как члены класса, так и потомки этого класса (см. наследование)

Пример нашей программы

Так как для работы нам нужно подключать пакеты (библиотеки классов), например для работы с датой, то необходимо использовать ключевое слово import.

import java.util.*;

/**
 * Класс вывода текущей даты
 * @author adw0rd
 */
public class JavaTest
{

    /**
     * @param args
     * @return Date Stamp
     */
    public static void main(String[] args)
    {
        System.out.print("Date: " + new Date());
    }

}

Жмем в Eclipse - Ctrl+F11 (или Run->Run) и запускаем программу, в окне Console выведется текущая дата и время. При сохранении файла, Eclipse откомпилирует его вновь, если в коде нет ошибок.

Так же можно откомпилировать через javac.exe и запустить через java.exe, вам решать, но мне удобнее работать в IDE.

Комментарии

Доступны в Java два вида комментариев:

// однострочный

/*
многострочный
*/

Так же для документирования классов и членов класса нужно пользоваться форматом Javadoc, доступно множество команд, вот некоторые из них:

/**
 * @author ИмяАвтора (И дополнительная информация, например e-mail)
 * @see ИмяКласса (Ссылка на другие классы)
 * @version Версия
 * @param Входные параметры метода
 * @return Описание того, что возвращает метод
 */

На сегодня все, в следующий раз рассмотрим основные и условные операторы, а также циклы в Java.

Комментарии

ВАУ)

Смотрю ты учишься по методике-- "Сам покажу другим как это делается и поэтому быстрее запомню и разберусь":) Читаю, интересно

fasfaea, да именно так, спасибо за лестный отзыв, пройдет дедлайн - продолжу :)

Я сам хочу научиться. Давай дружить. Дай аську)

fasfaea, у меня нет аськи... http://adw0rd.ru/contacts/

public — член класса доступен для всех

Доступен для всех в этом же пакете ;)

dallone, а как тогда юзать члены классов других пакетов? )

> dallone, а как тогда юзать члены классов других пакетов? )
А перед этим нужно импортировать другой пакет ;)

Не заморачивайся, я просто придираюсь к словам)

Я уверен, что модификаторы доступа применимы только к уже импортированным пакетам или к текущим (импортирующим), так?

Я вот тоже недавно решил освоить немного Java.
И мне понравился небольшой обучающий ман от ИВМ: http://www.ibm.com/developerworks/ru/edu/j-intjava/

dallone, ты, кстати, уже, наверное, вовсю пишешь на Жабе, да? :)

> dallone, ты, кстати, уже, наверное, вовсю пишешь на Жабе, да? :)

О да, первый браузер на Java уже готов :)))))

(К.О. говорит нам: Простой браузер на Java пишется за 15 минут).

> dallone, ты, кстати, уже, наверное, вовсю пишешь на Жабе, да? :)

О да, первый браузер на Java уже готов :)))))

(К.О. говорит нам: Простой "браузер" на Java пишется(точнее собирается из готовых компонентов) за 15 минут).

dallone, КО - это что? :)

Спасибо за уроки! Сам программирую давно, но вот с Java начал знакомиться недавно. А потом нашел твой блог. Очень нравится!

Оставьте свой комментарий

Markdown