Форум программистов, компьютерный форум, киберфорум
Java SE (J2SE)
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.75/8: Рейтинг темы: голосов - 8, средняя оценка - 4.75
0 / 0 / 0
Регистрация: 28.09.2010
Сообщений: 20
1

Наследование. Переопределение. Перегрузка

17.10.2012, 23:44. Показов 1582. Ответов 2
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
В программе есть подклассы. которые не могу дописать, только начали изучать Java. Буду благодарна за помощь. Вот само условие.

Главный класс-фигура. От него наследуется 3 класса: треугол, прямоуг, окружность.
От прямоугольника наследуется 2 класса-параллелограмм и трапеция.
В гл. классе есть 2 уникальных параметра a и b и есть методы-периметр, площадь.
В классе треугол. еще 2 уникал. параметра: 3-я сторона; 3-я сторона и угол на выбор.
В кл. прямоуг. 2 уникал. параметра a и b -3-я и 4-я сторона.
В классе окружность уникал параметров нету.
В классе трапеция 2 параметра - 2 угла при основании.
В классе параллелограмм 1 уникал. параметр - угол при основании.
Поститать в классе прямоуг. метод площадь, переопределить и перегрузить, чтобы счит. площадь квадрата a*b и a*a


Проблемы с треуг., прямоуг. и трапецией
Вложения
Тип файла: rar JavaApplication1.rar (20.0 Кб, 10 просмотров)
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
17.10.2012, 23:44
Ответы с готовыми решениями:

Полиморфизм/перегрузка/переопределение
class A { void m1(A a) { System.out.print("A"); } } class B extends A { ...

Перегрузка или переопределение?
Вопрос: перегрузка это или переопределение? Есть класс, в нем метод public int print(int...

Наследование классов и переопределение методов из JDK
Чтобы грамотно переопределять методы нужно читать исходники или в доках есть достаточное количество...

Переопределение и перегрузка метода(в чём отличия?)
Объясните мне в чём различия между Переопределением и перегрузкой метода?? Ведь по сути это одно и...

2
ɐwʎ ɔ vǝmоɔ dиw ɐʚонɔ
443 / 442 / 100
Регистрация: 14.10.2012
Сообщений: 1,146
Записей в блоге: 9
19.10.2012, 06:13 2
Лучший ответ Сообщение было отмечено ira1 как решение

Решение

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
 
//package javaapplication1;
 
/**
 *
 * @author stud316
 */
public class Main {
 
    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        Fig treug =  new  Treug(4, 6, 8, 49);
        Fig treug1= new Treug(4, 6, 49);
        
        System.out.println("Треугольник периметр");
        System.out.println(treug.per());        
        System.out.println(treug1.per());
        System.out.println("Треугольник площадь");
        System.out.println(treug.plosh());
        
        Fig pryam= new Pryam(4,13,5,3);
        System.out.println("Прямоугольник площадь и периметр");
        System.out.println(pryam.plosh());
        System.out.println(pryam.per());
                
        Fig okrug= new Okrug(5);
        System.out.println("Круг площадь и длина");
        System.out.println(okrug.plosh());
        System.out.println(okrug.per());
                
        Pryam paral=new Paral(2,3,4,5,24);
        System.out.println("Пара-м периметр и площадь");
        System.out.println(paral.per());
        System.out.println(paral.plosh());
               
        Pryam trap = new Trap(4,2,3,4,5,6);
        System.out.println("Трапеция периметр и площадь");
        System.out.println(trap.per());
        System.out.println(trap.plosh());
    }
}
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
 
//package javaapplication1;
 
/**
 *
 * @author stud316
 */
abstract public class Fig {
    final double PI = 3.14;
    
    int a;
    int b;
    
//  public Fig() {
//      System.out.println("параметры не заданы");
//  }
 
    public Fig() {
        
    }
    public Fig(int a, int b){
        this.a=a;
        this.b=b;
    }
 
    abstract public double per();
 
    abstract public double plosh();
    
}
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
 
//package javaapplication1;
 
/**
 *
 * @author stud316
 */
public class Treug extends Fig {
int c; 
double d = 0; //угол
 
    // три стороны
    public Treug(int a, int b, int c) {
        super(a, b);
        this.c = c; 
    }
    // три стороны и угол
    public Treug(int a, int b, int c, double d) {
        super(a, b);
        this.c = c;
        this.d = d;
       
    }
 
    @Override
public double per(){
    return (double) (a+b+c);
 
}
    // если не задан угол - то первая формула, если задан - то вторая по двух сторонам и синусу угла
    @Override
   public double plosh(){
        if (d == 0) {
            return Math.sqrt(this.per() * (this.per() - a) * (this.per() - b) * (this.per() - c));
        } else {
       return ((a*b*Math.sin(d))/2);
        }
        
   }
}
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
 
//package javaapplication1;
 
/**
 *
 * @author stud316
 */
public class Pryam extends Fig {
int e;
int f;
    
    public Pryam(int a, int b, int c, int d) {
        super(a, b);
        this.e = c;
        this.f = d;
    }
    
    public Pryam(int a, int b) {
        super(a, b);
    }
    
    @Override
public double per(){
    return a + b + e + f; // чтобы было лучше понятно
}
    
    @Override
public double plosh(){
return a*b;
 
}}
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
 
//package javaapplication1;
 
/**
 *
 * @author stud316
 */
public class Okrug extends Fig{
    int r;
    
    public Okrug(int a) {
    r = a;    
    }
   
    @Override
   public double per(){
       return 2 * PI * r;
    }
 
    @Override
   public double plosh(){
       return PI * r * r;
   }
}
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
 
//package javaapplication1;
 
/**
 *
 * @author stud316
 */
public class Trap extends Pryam {
    double s;
    double z;
 
    public Trap(int a, int b, int e, int f, double s, double z) {
        super(a, b);
        this.s = s;
        this.z = z;
    }
 
    @Override
    public double per(){
        return  a+b+e+f;
    }
 
    @Override
    public double plosh(){
        return a * b * Math.sin(s);
    }
  
}
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
 
//package javaapplication1;
 
/**
 *
 * @author stud316
 */
public class Paral extends Pryam {
    double g; //угол
 
    // дано 4 стороны
    public Paral(int a, int b, int e, int f, double g) {
        super(a, b, e, f);
        this.g = g;
    }
 
    
    @Override
    public double per(){
        return a + b + e + f;
    }
    
    @Override
    public double plosh(){
        return (a*b*Math.cos(g));
    }
}
вот, держите, проверьте правильность формул и логики, если обнаружите недочеты - могу исправить, только укажите в какой метод какую формулу (или значения)
1
0 / 0 / 0
Регистрация: 28.09.2010
Сообщений: 20
19.10.2012, 07:43  [ТС] 3
в треуг и трапеции площадь отрицательная((
а так огромное спасибо тебе))
0
19.10.2012, 07:43
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
19.10.2012, 07:43
Помогаю со студенческими работами здесь

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

Перегрузка\переопределение
перегрузка и переопределение стандартных операторов в классе это одно и то же или нет?

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

Наследование,переопределение методов[рефлексия]
Раньше я практически не сталкивался с рефлексией, но теперь появилась острая проблема .Загружаю...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru