Форум программистов
 
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

Вернуться   Форум программистов > Java > Общие вопросы по Java, Java SE, Kotlin
Регистрация

Восстановить пароль
Повторная активизация e-mail

Ответ
 
Опции темы
Старый 09.05.2018, 13:40   #1
Алексей_2012
t45t
Профессионал
 
Аватар для Алексей_2012
 
Регистрация: 20.03.2012
Адрес: пгт. Балакирево
Сообщений: 1,718
Репутация: 279

icq: 649899888
По умолчанию проблемы с переходом на язык Java, компиляция приложения

Ребят, всем привет, недавно начал изучать Java, перехожу с делфи и С# на Яву, есть несколько вопросов...сначала спрошу о том, почему не компилируется программа.

Есть 3 класса, 2 из них наследуются от первого, в головном методе класса main программа выдает ошибку на скрине, привожу код и скрин ошибки, среда eclips.

Код:


import java.util.ArrayList;

class Point {

    /**
     * Пустой конструктор
     */
    Point() {}

    /**
     * Метод класса, который рассчитывает площадь фигуры
     */
    double getSquare() {
        return 0;
    }

    /**
     * Метод класса, который рассчитывает периметр фигуры
     */
    double getPerimeter() {
        return 0;
    }

    /**
     * Метод класса, возвращающий описание фигуры
     */
    String getDescription() {
        return "Точка";
    }
}

class LineSegment extends Point {

    LineSegment(double segmentLength) {
        this.segmentLength = segmentLength;
    }

    double segmentLength; // Длина отрезка

    /**
     * Переопределенный метод класса, который рассчитывает площадь отрезка
     */
    double getSquare() {
        return 0;
    }

    /**
     * Переопределенный метод класса, который рассчитывает периметр отрезка
     */
    double getPerimeter() {
        return this.segmentLength;
    }

    String getDescription() {
        return "Отрезок длиной: " + this.segmentLength;
    }
}
class Triangle extends Point {

    /**
     * Конструктор класса. Принимает на вход три параметра:
     * длина стороны А, длина стороны Б,
     * угол между этими сторонами(в градусах)
     */
    Triangle(double sideA, double sideB, double angleAB) {
        this.sideA = sideA;
        this.sideB = sideB;
        this.angleAB = angleAB;
    }

    double sideA; //Поле класса, хранит значение стороны А в описываемом треугольнике
    double sideB; //Поле класса, хранит значение стороны Б в описываемом треугольнике
    double angleAB; //Поле класса, хранит угла(в градусах) между двумя сторонами в описываемом треугольнике

    /**
     * Метод класса, который рассчитывает площадь треугольника
     */
    double getSquare() {
        double square = (this.sideA * this.sideB * Math.sin(this.angleAB * Math.PI / 180))/2;
        return square;
    }

    /**
     * Метод класса, который рассчитывает периметр треугольника
     */
    double getPerimeter() {
        double sideC = Math.sqrt(Math.pow(this.sideA, 2) + Math.pow(this.sideB, 2) - 2 * this.sideA * this.sideB * Math.cos(this.angleAB * Math.PI / 180));
        double perimeter = this.sideA + this.sideB + sideC;
        return perimeter;
    }

    String getDescription() {
        return "Треугольник со сторонами: " + this.sideA + ", " + this.sideB + " и углом между ними: " + this.angleAB;
    }
}





public class main {
	
	
	

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		
	    ArrayList figures = new ArrayList();

        //добавляем три разных объекта в массив figures
        figures.add(new Point());
        figures.add(new LineSegment(133));
        figures.add(new Triangle(10, 17, 55));
        
        Point figure ;
        
        for (int i = 0; i < figures.size(); i++) {
            //для каждого объекта, который находится в массиве
            //выводим его описание, периметр и площадь
        	 figure = figures.get(i);
            System.out.println(figure.getDescription());
            System.out.println("Периметр фигуры: "+figure.getPerimeter());
            System.out.println("Площадь фигуры: "+figure.getSquare());
        }
        

      
    }	

	

}

Есть небольшая оговорка, что при типизировании ArrayList все работает под windows 7, но под Ubuntu - нет
Код:


		
	    ArrayList <Point> figures = new ArrayList<>();

Изображения
Тип файла: png Безымянный.png (38.7 Кб, 13 просмотров)
__________________
from dark to light)

Последний раз редактировалось Алексей_2012; 09.05.2018 в 13:46.
Алексей_2012 вне форума   Ответить с цитированием
Старый 09.05.2018, 14:34   #2
Alex11223
Модератор
Заслуженный модератор
 
Регистрация: 12.01.2011
Сообщений: 17,117
Репутация: 3316

icq: 512-765
skype: alexp.frl
По умолчанию

Цитата:
Сообщение от Алексей_2012 Посмотреть сообщение
при типизировании ArrayList все работает под windows 7, но под Ubuntu - нет
Видимо там старая версия Джавы.
Цитата:
Сообщение от Алексей_2012 Посмотреть сообщение
Код:

    /**
     * Метод класса, который рассчитывает площадь фигуры
     */

Зачем первая половина слов?

И откуда вообще у точки площадь и периметр?

Последний раз редактировалось Alex11223; 09.05.2018 в 18:15.
Alex11223 вне форума   Ответить с цитированием
Старый 09.05.2018, 17:49   #3
Black Fregat
Программист
Профессионал
 
Аватар для Black Fregat
 
Регистрация: 23.06.2009
Сообщений: 1,063
Репутация: 754
По умолчанию

Цитата:
Сообщение от Алексей_2012 Посмотреть сообщение
почему не компилируется программа
Раз ArrayList не типизирован, информация о типе объектов при помещении в него теряется. Нужно делать явное преобразование при извлечени

Цитата:
Сообщение от Алексей_2012 Посмотреть сообщение
под Ubuntu - нет
Под Ubuntu, небось, стоит OpenJDK, причём достаточно древний. Поставьте нормальный оракловский JDK
Black Fregat вне форума   Ответить с цитированием
Ответ

Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Компиляция сервера на языке java Sasha94 Общие вопросы по Java, Java SE, Kotlin 0 21.10.2016 22:39
Программная компиляция из приложения. Rockot Общие вопросы Delphi 3 04.09.2016 13:15
Компиляция приложения в разных режимах ДралсяСошибками Общие вопросы Delphi 3 18.08.2015 22:37
Компиляция java, и упаковка в jar VY_CMa Общие вопросы по Java, Java SE, Kotlin 0 13.08.2012 15:00
Публикация(компиляция) приложения _PROGRAMM_ Общие вопросы .NET 33 26.02.2010 08:27


08:23.


Powered by vBulletin® Version 3.8.8 Beta 2
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.

RusProfile.ru


Справочник российских юридических лиц и организаций.
Проекты отопления, пеллетные котлы, бойлеры, радиаторы
интернет магазин respective.ru