Главная | Обратная связь | Поможем написать вашу работу!
МегаЛекции

Пример 1.1. 1.1.2. Компиляция программы на Java в командной строке. 1.1.3. Запуск из командной строки. "Hello World!"




Пример 1. 1.

В любом текстовом редакторе создаем файл JavaApplication1. java (имя файла должно совпадать с именем класса):

public class JavaApplication1 { public static void main(String[] args) {           System. out. println(" Hello World! " );           Calculator calc=new Calculator();           System. out. println(" 2+2=" +calc. sum(2, 2));            } public static class Adder{ private int sum;     public Adder() { sum=0; } public Adder(int a){ this. sum=a; } public void add(int b) {   sum+=b; } public int getSum() { return sum; }} public static class Calculator{ public int sum(int... a) {   Adder adder=new Adder();    for(int i: a)   {       adder. add(i);    }   return adder. getSum(); }}}

1. 1. 2. Компиляция программы на Java в командной строке

4. 1. Компиляция в командной строке. Заходим в директорию, где хранится файл, и выполняем компиляцию: javac JavaApplication1. java В результате получаем скомпилированные файлы JavaApplication1. class, JavaApplication1$Adder. class, JavaApplication1$Calculator. class

1. 1. 3. Запуск из командной строки

java -classpath. JavaApplication1

Поучаем:

" Hello World! "

2+2=4

1. 1. 4. Дополнительные примеры

 Пример 1. 2. Примитивное окно приложений с обработкой события Close.

Можем ли мы создать полноценное окно (как в Windows) из программы, написанной на языке Java? Для этого существует класс Frame (рамка). Если ваш класс является потомком класса Frame, то вы получаете окно со всеми его атрибутами. Запуск на выполнение потомка класса Frame происходит из функции main. Никакого кода HTML не требуется. Программа полностью автономна и браузер для нее не нужен.

import java. awt. *; import java. awt. event. *; class SimpleFrame extends Frame{   SimpleFrame(String s){     super(s); setSize(400, 150);     setVisible(true);     addWindowListener(new WindowAdapter(){ public void windowClosing(WindowEvent ev){ dispose(); System. exit(0);       } });   }   public static void main(String[] args){ new SimpleFrame(" Моя программа" );   } }

Кнопка закрытия окна работать не будет, если не написать специальный код, который присутствует в приведенной выше программе (код располагается в конструкторе):

addWindowListener(      new WindowAdapter()      {  public void windowClosing(WindowEvent ev)             {                       //dispose();                      System. exit(0);              }      }); Это пример определения безымянного класса. Рассмотрим его подробнее. Мы вызываем метод addWindowListener для того, чтобы назначить слушателя оконных событий. В качестве параметра создаем объект класса WindowAdapter. Но этот класс является абстрактным! Поэтому мы неявно создаем производный от него класс и переопределяем нужные нам методы - в данном случае обработку события закрытия окна (метод dispose уничтожает объект Frame ). После этого останавливаем виртуальную машину Java вызовом метода System. exit(0). При компиляции будет создан класс с именем simpleFrame$1. class

Пример 1. 3. Окно приложений с выводом текста

import java. awt. *; import java. awt. event. *; class HelloWorldFrame extends Frame{     HelloWorldFrame(String s){ super(s);   }    public void paint(Graphics g){ g. setFont(new Font(" Serif", Font. ITALIC | Font. BOLD, 30)); g. drawString(" Hello, XXI century World! ", 20, 100);   }   public static void main(String[] args){ Frame f = new HelloWorldFrame(" Здравствуй, мир XXI века! " ); f. setSize(400, 150); f. setVisible(true); f. addWindowListener(new WindowAdapter(){   public void windowClosing(WindowEvent ev){   //dispose();   System. exit(0);         } }); } }

Пример 1. 4. Окно приложений c графическим примитивом линии

import java. awt. *; import java. awt. event. *; class GraphTest01 extends Frame{ GraphTest01(String s) { super(s); setBounds(0, 0, 500, 300); setVisible(true); } public void paint(Graphics g){ Dimension d = getSize(); int dx = d. width / 20, dy = d. height / 20; int myWidth = 250, myHeight = 250; g. drawLine(0, 0, myWidth, myHeight); g. drawLine(0, 0, d. width, d. height); setBackground(Color. blue);     setForeground(Color. red);  } public static void main(String[] args){ GraphTest01 f = new GraphTest01(" Пример рисования" ); f. addWindowListener(new WindowAdapter(){      public void windowClosing(WindowEvent ev){          System. exit(0);            } }); } }

Справочная информация по классу Graphics

Класс Graphics - работа с графикой осуществляется через методы paint(), update().

// Рисует линию. void drawLine (int startX, int startY, int endX, int endY); // Контурный прямоугольник. void drawRect (int top, int left, int width, int height); // Закрытый прямоугольник. void fillRect (int top, int left, int width, int height); // Контурный прямоугольник с закругленными углами. void drawRoundRect (int top, int left, int width, int height,     int xDiam, int yDiam); // Закрытый прямоугольник с закругленными углами. void fillRoundRect (int top, int left, int width, int height,     int xDiam, int yDiam); // Контурный эллипс внутри заданного прямоугольникаvoid drawOval (int top, int left, int width, int height); // Закрытый эллипс внутри заданного прямоугольникаvoid fillOval (int top, int left, int width, int height); // Контурная дугаvoid drawArc (int top, int left, int width, int height,     int startAngle, int sweepAngle); // Закрытая дугаvoid fillArc (int top, int left, int width, int height,     int startAngle, int sweepAngle); // Контурный многоугольникvoid drawPolygon (int x[], int y[], int numPoints); // Закрытый многоугольникvoid fillPolygon (int x[], int y[], int numPoints);

1. 1. 5. Задания к лабораторной работе №1 (часть 1)

Задание 1. 1:

1. Скомпилируйте и выполните примеры 1-4 из командной строки.

2. Используя справочную информацию по классу Graphics, поэкспериментируйте с графическими примитивами.  

3. Сформулируйте выводы о структуре Java-программы и методах использования классов, включите их в отчет.

4. Сформируйте отчет с текстами программ и скринами результатов.

Поделиться:





Воспользуйтесь поиском по сайту:



©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...