рефераты конспекты курсовые дипломные лекции шпоры

Реферат Курсовая Конспект

Интерфейсы

Интерфейсы - раздел Программирование, Введение в Java   Интерфейсы В Java Предназначены Только Для Объявления Некотор...

 

Интерфейсы в Java предназначены только для объявления некоторых методов и констант. Никакие реализации методов в интерфейсах не предусматриваются. Т. е. интерфейс только содержит информацию о том, что методы с такими-то названиями в мнем существуют, но не содержит информации, как именно эти методы работают. Реализация же методов интерфейса будет содержаться в классах, которые этот интерфейс реализуют.

 

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

 

Вот примеры интерфейса для геометрической фигуры и 3-х классов конкретных геометрических фигур, реализующих этот интерфейс:

public interface IFigure {

double pi = 3.1415;

// Площадь.

double square();

}

// Класс прямоугольника.

public class Rect implements IFigure {

int width = 0;

int height = 0;

Rect(int width, int height){

this.width = width;

this.height = height;

}

public double square(){

return width * height;

}

}

// Класс треугольника.

public class Triangle implements IFigure {

double leg1 = 0;

double leg2 = 0;

public Triangle(double leg1, double leg2){

this.leg1 = leg1;

this.leg2 = leg2;

}

public double square() {

return leg1 * leg2 * 0.5;

}

}

// Класс круга.

public class Circle implements IFigure {

 

double radius;

public Circle(double radius){

this.radius = radius;

}

public double square() {

return radius * radius * pi;

}

}

 

А вот использование указанного интерфейса и классов, его реализующих:

public class Test {

public static void main(String[] args) {

Rect r = new Rect(2, 4);

System.out.println("Rect: " + r.square());

 

Triangle t = new Triangle(3, 4);

System.out.println("Triangle: " + t.square());

 

Circle c = new Circle(1);

System.out.println("Circle: " + c.square());

}

}

 

Обратите внимание, что каждый класс содержит метод square для вычисления площади. Этот метод обязан быть в каждом классе, так как он есть в интерфейсе, от которых классы наследуются. Также обратите внимание, что в классе Circle мы используем константу pi из интерфейса. В других языках программирования объявление констант в интерфейсах не допускается.

 

Выведет программа естественно Rect: 8.0 Triangle: 6.0 и Circle: 3.1415.

 

Проект «Подбор цвета»

 

import java.awt.*;

import java.awt.event.*;

 

public class ScrollTest extends Frame

{

Scrollbar sbRed = new Scrollbar(Scrollbar.VERTICAL, 127, 10, 0, 255);

Scrollbar sbGreen = new Scrollbar(Scrollbar.VERTICAL, 127, 10, 0, 255);

Scrollbar sbBlue = new Scrollbar(Scrollbar.VERTICAL, 127, 10, 0, 255);

//Scrollbar(int orientation, int value, int visible, int min, int max)

//задает ориентацию, начальное значение value, размер блока visible,

//диапазон значений min—max.

Label lblRGB = new Label();

Button btnPrim = new Button("Применить");

Button btnOtm = new Button("Отменить");

Button btnExit = new Button("Выход");

 

ScrollTest(String s){ super(s);

 

setLayout(null);

setFont(new Font("Serif", Font.BOLD, 15));

 

Panel p = new Panel();

p.setLayout(null);

p.setBounds(10,50, 150, 260); add(p);

 

Label lblColor = new Label("Подберите цвет");

lblColor.setBounds(20, 0, 120, 30); p.add(lblColor);

 

Label lblMin = new Label("0", Label.RIGHT);

lblMin.setBounds(0, 30, 30, 30); p.add(lblMin);

 

Label lblMiddle = new Label("127", Label.RIGHT);

lblMiddle.setBounds(0, 120, 30, 30); p.add(lblMiddle);

 

Label lblMax = new Label("255", Label.RIGHT);

lblMax.setBounds(0, 200, 30, 30); p.add(lblMax);

 

sbRed.setBackground(Color.red);

sbRed.setBounds(40, 30, 20, 200); p.add(sbRed);

sbGreen.setBackground(Color.green);

sbGreen.setBounds(70, 30, 20, 200); p.add(sbGreen);

sbBlue.setBackground(Color.blue);

sbBlue.setBounds(100, 30, 20, 200); p.add(sbBlue);

 

Label lblObraz = new Label("Образец:");

lblObraz.setBounds(250, 50, 120, 30); add(lblObraz);

 

lblRGB.setBackground(new Color(127, 127, 127));

lblRGB.setBounds(220, 80, 120, 80); add(lblRGB);

 

btnPrim.setBounds(230, 180, 100, 30); add(btnPrim);

btnOtm.setBounds(230, 220, 100, 30); add(btnOtm);

btnExit.setBounds(230, 260, 100, 30); add(btnExit);

 

setSize(400, 300); setVisible(true);

 

// Добавление обработчика для кнопки Применить

btnPrim.addActionListener(new ActionListener(){

public void actionPerformed(ActionEvent e){

lblRGB.setBackground(new Color(sbRed.getValue(),sbGreen.getValue(),sbBlue.getValue()));

}

});

btnOtm.addActionListener(new ActionListener(){

public void actionPerformed(ActionEvent e){

lblRGB.setBackground(new Color(127,127,127));

}

});

 

btnExit.addActionListener(new ActionListener(){

public void actionPerformed(ActionEvent e){

System.exit(0);

}

});

}

 

public static void main(String[] args){

Frame f = new ScrollTest("Выбор цвета");

f.addWindowListener(new WindowAdapter(){

 

public void windowClosing(WindowEvent ev) {

System.exit(0);

}

});

}

}

 

Проект «Кардиоида»

 

import java.awt.*;

import java.awt.event.*;

import javax.swing.*;

 

class Panel extends JPanel{

public int x1,y1,x2,y2;

 

public Panel(){

setLayout(null);

}

 

protected void paintComponent(Graphics g){

super.paintComponent(g);

int a=100;

double r=a*(1+Math.sin(0));

int x0=250, y0=250;

x2=(int) (x0+r*Math.cos(0));

y2=(int) (y0-r*Math.sin(0));

for(double i=1;i<=360;i++){

double rad=Math.PI*i/180;

r=a*(1+Math.sin(rad));

x1=(int) (x0+r*Math.cos(rad));

y1=(int) (y0-r*Math.sin(rad));

g.drawLine(x1,y1,x2,y2);

x2=x1;

y2=y1;

}

}

}

 

import java.awt.*;

import java.awt.event.*;

import javax.swing.*;

public class program extends JFrame{

 

private Panel pane = new Panel();

private JButton start = new JButton("Paint");

 

public program(){

JFrame mf = new JFrame("Paint Test");

mf.setLayout(new BorderLayout());

mf.setSize(500, 500);

mf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

pane.setBorder(BorderFactory.createLineBorder(Color.BLACK));

pane.setBackground(Color.WHITE);

mf.add(pane, BorderLayout.CENTER);

mf.add(start, BorderLayout.SOUTH);

start.addActionListener(new ActionListener(){

public void actionPerformed(ActionEvent ae){pane.repaint();}});

mf.setVisible(true);

}

 

 

public static void main(String[] args){

SwingUtilities.invokeLater(new Runnable(){

public void run(){new program();}

});

}

}

 

– Конец работы –

Эта тема принадлежит разделу:

Введение в Java

Операторы ветвления... Операторов ветвления в Java два if и switch Первый позволяет пойти программе по одному из двух направлений второй...

Если Вам нужно дополнительный материал на эту тему, или Вы не нашли то, что искали, рекомендуем воспользоваться поиском по нашей базе работ: Интерфейсы

Что будем делать с полученным материалом:

Если этот материал оказался полезным ля Вас, Вы можете сохранить его на свою страничку в социальных сетях:

Все темы данного раздела:

Что такое Java и как она работает?
  Если кратко, то Java - это один из языков программирования. Он разработан компанией Sun, и является платформо-независимым. Это означает, что программа, написанная на Java, будет оди

Что такое JDK и как его установить?
  JDK расшифровывается как Java Developer Kit. Это набор программ и утилит, предназначенный для программирования на Java. В него ряд утилит. Вот некоторые из них: Компилятор

Категории программ Java
● Приложение (application) – аналог “обычной” прикладной программы. ● Апплет (applet) – специализированная программа, работающая в окне WWW-документа под управлением браузера.

SDK - Software Development Kit
Поставить на компьютер исполняющую среду Java (JVM) можно путём установки SDK – Комплекта разработки программного обеспечения. Имеется три типа SDK: ● Java ME– компл

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

Числовые типы данных
  Числовые типы данных Java перечислены в следующей таблице: Тип Описание Количество байтов int

Логический тип
  Переменные логического типа могут принимать значение или true (истина), или false (ложь). Сразу обратите внимание, что нельзя вместо true и false писать нулевое и ненулевое значения

Массивы
  Начнем сразу с примеров. Вот пример, в котором мы заводим массив из 3-х целых чисел, в каждое из которых мы записываем случайное целое число от 0 до 9 и затем выводим все числа на э

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

Модификатор final
  Иногда мы не хотим, чтобы от некоторого созданного нами класса можно было производить классы-потомки. Например, это может понадобиться в целях безопасности.  

Первая оконная программа
  Все программы, которые мы создавали до сих пор, были консольными. На этом занятии мы с вами создадим первую программу, которая будет будет иметь оконный вид. Ее можно будет запустит

Читаем строку с клавиатуры
  Вы, наверное, обратили внимание, что раньше мы старательно избегали получать данные от пользователя. Значения всем переменным мы задавали непосредственно в программе. Сейчас мы и уз

Читаем числа с клавиатуры
  Вот пример класса, который может читать числа с клавиатуры: import java.io.*; class NumReader{ public static void main(String [] args) throws IOException{

Закрытие оконной программы
  Давайте дополним код нашей первой оконной программы по крайней мере таким образом, чтобы она закрывалась: import java.awt.*; import java.awt.event.*; clas

Пакет java.awt - обзор
  Пакет java.awt предназначен для создания пользовательского интерфейса. Он, в частности, содержит классы для различных компонентов - кнопок, текстовых полей, классы для меню, классы

Библиотека Swing - делаем окно
  В Java существует две библиотеки для создания пользовательского интерфейса - Awt и Swing. Swing считается более продвинутой и современной. Сегодня мы создадим окно с использованием

Swing: добавляем кнопку с обработчиком
  Посмотрим, как можно добавить к созданному ранее окну кнопку с обработчиком.   Наша кнопка будет экземпляром класса JButton. Вообще схема работы с элементами

Swing: кнопка с двумя состояниями
  В библиотеке swing наряду с обычной кнопкой есть кнопка с двумя состояниями - нажатом и отжатом. Она работает приблизительно как checkbox, только выглядеть по-другому. Для создания

Правильное закрытие программы
  Созданные нами ранее программы работали не вполне корректно - а именно после своего закрытия они оставались в памяти. Убедится в этом было достаточно просто - запустив и закрыв прог

Swing: элемент JCheckBox
  Элемент JCheckBox - это обычный checkbox (флажок). Он имеет вид квадратика, в котором может стоять (или не стоять) галочка. Этот элемент может иметь 22 состояния - либо включенное,

Swing: JRadioButton
  Элемент управления JRadioButton предназначен для организации выбора только одного значения из нескольких возможных. Для этого несколько элементов JRadioButton объединяются в одну гр

Swing: Несколько групп радиокнопок
  Ранее мы рассмотрели работу с одной группой радиокнопок. Сейчас же мы с вами посмотрим, как работать с несколькими группами радиокнопок.   Приведем сразу лист

Swing: Список JList
  Класс JList предназначен для выбора пользователем одного или нескольких значений из списка. В этом элементе пользовательского интерфейса можно выбирать как один элемент, так и неско

Простой графический редактор
  import java.awt.*; import java.awt.event.*; public class DrawCanvas extends Canvas { private int lastX, lastY; private int ex, ey; priva

Менеджеры компоновок
Применение компоновок   При проектировании интерфейса пользователя с использованием языка Java компоненты размещаются в контейнерах. Самым простым примером контейнера может с

Интерфейс в качестве типа
  Мы не можем создать экземпляр интерфейса. Именно потому, что у него не существует реализации методов. Т. е. мы не можем написать, например, так: IFigure f = new IFigure();

Множественное наследование
  В Java, как и во многих других языках программирования, не допускается множественное наследование для классов. У класса может быть только один непосредственный предок (у которого, в

Инверсия списка
  Рассмотрим с вами решение классической задачи - инверсии (т. е. размещению элементов в обратном порядке) списка. Список устроен следующим образом: каждый элемент списка содержит, во

Работа с файлами и дисками
  Для работы с файлами и дисками служит все тот же рассмотренный нами ранее класс File. Вот несколько примеров его использования для работы с папками и дисками: import java.i

Получение системных свойств
  Для получения системных свойств (таких, например, как имя пользователя, версия виртуальной java-машины или разделителя между папками для конкретной операционной системы) используетс

Перечисления (enum) 2
  В Java, в отличие от многих других языков программирования, в перечисления можно добавлять методы, переменные и другие члены. Этим перечисления очень напоминают на классы.

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

Что такое апплет?
Апплет - это небольшая программа на языке Java, которая может выполнятся в окне браузера. Сам по себе апплет, в отличие от других java-программ, выполнятся не может - присутствие браузера тут обяза

Пишем первый апплет
Первый апплет, по давно укоренившейся традиции, покажет нам некоторую надпись. В нашем примере это будет "FirstApplet". Итак, создайте файл FirstApplet.java и внесите в него следующий тек

Рисуем прямоугольники и эллипсы
Для рисования прямоульников и эллипсов служат методы drawOval, drawRect, fillOval и fillRect класса Graphics. Первые два из них рисуют прямоугольник и эллипс соответственно, последние два служат дл

Закрашиваем фон
По умолчанию апплет имеет серый фон. Для изменения фона служит метод setBackground. Этот метод принимает в качестве параметра переменную типа Color. Вот пример апплета с синим цветом фона:

Изменяем шрифт
Для вывода некоторой надписи в апплет мы используем метод drawString объекта Graphics. Этот метод имеет три параметра (что на надпись и расположение на апплете). По умолчанию используется стандартн

Мигающая надпись
Давайте посмотрим, как мы может достичь в апплете эффекта мигающей надписи (это как мигающие банеры, только не так надоедает ;)). Вот пример: import java.awt.*;import

Бегущая строка
Бегущую строку в апплете можно реализовать аналогично мигающей строке, рассмотренной на прошлом уроке. Отличие только в том, что в методе paint мы вместо изменения цвета изменяем координату x нашей

Работаем с мышью
Работа с мышкой происходит на основе модели делегирования событий. Дело тут происходит приблизительно так: есть некоторый источник событий - например, мышка. Этот источник генерирует определенные с

Интерфейс MouseListener
Для работы с мышью сушествуют два интерфейса. На этом уроке мы рассмотрим один из них - а именно MouseListener. В этом интерфейсе существует следующие пять методов: mouseCli

Интерфейс MouseMotionListener
Второй интерфейс, который позволяет реализовать работу с мышью - это MouseMotionListener. В этом интерфейсе только два метода: mouseMoved (перемещение мыши) mouseD

Работаем с клавиатурой
Для работы с клавиатурой используется интерфейс KeyListener. Т. е. класс нашего апплета должен реализовывать этот интерфейс для работы с клавиатурой. В этом интерфейсе имеется три метода: keyPresse

Вставляем изображение в апплет
Разумеется, рисовать в апплете с использованием примитивов - задача не из легких. Поэтому части поступают так - рисуют качественные изображения в каком-нибудь графическом редакторе, сохраняют их в

Заполение фона градиентом
Для заполнения фона апплета градиентом мы просто будем рисовать вертикальные линии. Каждая такая линия будет иметь цвет, незначительно отличющийся от цвета соседей. Разумеется, что все линии будут

Передача данных в апплет
Часто нам надо настроить апплет в соответствии с некоми параметрами. Параметры могут браться из различных источников - например из внешнего файла или из базы данных. На этом уроке мы рассмотрим, ка

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

Хотите получать на электронную почту самые свежие новости?
Education Insider Sample
Подпишитесь на Нашу рассылку
Наша политика приватности обеспечивает 100% безопасность и анонимность Ваших E-Mail
Реклама
Соответствующий теме материал
  • Похожее
  • Популярное
  • Облако тегов
  • Здесь
  • Временно
  • Пусто
Теги