Форум программистов, компьютерный форум, киберфорум
Java SE (J2SE)
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.68/22: Рейтинг темы: голосов - 22, средняя оценка - 4.68
13 / 13 / 0
Регистрация: 25.09.2011
Сообщений: 84
1

Класс "Строка", реализовать через агрегирование, с использованием классов "Слово" и "Символ"

06.12.2011, 23:02. Просмотров 4150. Ответов 5
Метки нет (Все метки)


Создать объект класса "Строка", используя классы "Слово", "Символ".Реализовать через агрегирование. При создании класса агрегируемый класс объявляется как атрибут.

Что-то я запутался в этих отношениях.
и как сделать так, чтобы Слов и Символом могло быть много, а строка одна.?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
06.12.2011, 23:02
Ответы с готовыми решениями:

Описать класс "многочлен", реализовать методы "произведение многочленов", "сравнение на равенство"
описать класс "многочлен".реализовать методы "произведение многочленов", "сравнение на равенство",...

Создать 3 объекта типа Dog (собака) и присвоить им имена "Max", "Bella", "Jack"
Создать 3 объекта типа Dog (собака) и присвоить им имена "Max", "Bella", "Jack". Вот как я это...

В заданной строке дописать после каждого символа "*" символ " "
В заданной строке дописать после каждого символа "*" символ " "

Написать программу замены во веденной строке буквы "а" на символ "+"
написать программу замены во веденной строке буквы "а" на символ "+" #include <stdio.h> #include...

__________________
Помогаю в написании студенческих работ здесь.
Записывайтесь на профессиональные курсы Java-разработчиков
5
2580 / 2253 / 257
Регистрация: 14.09.2011
Сообщений: 5,185
Записей в блоге: 18
07.12.2011, 02:49 2
Символ = char, слово = массив символов без пробелов, строка = массив слов
0
13 / 13 / 0
Регистрация: 25.09.2011
Сообщений: 84
07.12.2011, 12:30  [ТС] 3
Цитата Сообщение от mutagen Посмотреть сообщение
Символ = char, слово = массив символов без пробелов, строка = массив слов
т.е так. ?:
Java
1
2
3
4
5
public class test {
    public static void main(String[] args) {
        new Stroka();
        }
}
Java
1
2
3
4
5
6
7
8
public class Stroka {
    private Slovo sl[];
    public Stroka () {
        System.out.println ("stroka is created");
        sl [0] = new Slovo();//какой здесь должен быть индекс?
        // как правильно добавлять слова?
    }
}
Java
1
2
3
4
5
6
7
public class Slovo {
    private Symbol [] sym;
    Slovo (){
        System.out.println ("slovo is created");
        sym[0]= new Symbol();//какой здесь должен быть индекс?
    }
}
Java
1
2
3
4
5
6
public class Symbol {
    private char ch;
    public Symbol (){
        System.out.println ("Symbol is created");
    }
}
что нужно добавить. какие условия, чтобы было более жизненно?
как сделать чтобы создавался массив из "Слов"/"Символов" только число элементов в массиве не известно?

после запуска этой программы выдается ошибка
Java
1
2
3
4
5
6
7
stroka is created
slovo is created
Symbol is created
Exception in thread "main" java.lang.NullPointerException
    at Slovo.<init>(Slovo.java:5)
    at Stroka.<init>(Stroka.java:8)
    at test.main(test.java:5)
0
0 / 0 / 0
Регистрация: 14.11.2014
Сообщений: 3
14.11.2014, 12:04 4
Я вот так решил эту задачу может кому пригодиться

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
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
package stroka;
 
public class Symvol{
/*обозначим переменную bukva типа String, т.к. слово-тип String и строка тип String
 а так как они все состоят друг из друга приводим к общему типу чтобы в дальнейшем 
 не мучатся с преобразованием   
*/    
private  String bukva;//    
/*Инициализируем массив символов(допустим все слова состоят из заглавных 
  латинских букв)
*/
private  char sym[];
Symvol(){
    this.sym = new char[]{'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z'};
    //                     0    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 
}
//Берем букву из алфавита
public void setSymvol(int i){
    bukva=""+sym[i];
}
//Возвращаем букву
public String getSymvol(){
    return bukva;
}
/* Следующий код избыточен для решения данной задачи но чтобы реализовать
   агрегирование в полной мере необходимо иметь возможность узнавать к кому
   слову принадлежит тот или иной символ
*/
private Word word;
public void setSlovo(Word word){
    this.word=word;
} 
public Word getSlovo(){
    return this.word;
}
}
class Word{
   private String word=""; 
 
   //Составляем слово из букв и связываем ее со словом
   public void addSymvol(String bukva){
      word=word+bukva;
       
   }
   //Возвращаем слово
   public String getWord(){
        return word;
    }
   
}
class Stroka{
   private String stroka="";
   //Составляем строку
   public void addWord(String word){
       stroka=stroka+" "+word;
   }
   //Возвращаем строку
   public String getStroka(){
       return stroka;
   }
}
 
Главный класс
package stroka;
 
public class Main {
    private String bukva;
   public static void main(String[] args) {
      Symvol sBukva=new Symvol(); 
      Word word1=new Word();
      Word word2=new Word();
      Stroka stroka=new Stroka();
      // Первое слово
       sBukva.setSymvol(7);
       word1.addSymvol(sBukva.getSymvol());
       sBukva.setSymvol(4);
       word1.addSymvol(sBukva.getSymvol());
       sBukva.setSymvol(11);
       word1.addSymvol(sBukva.getSymvol());
       sBukva.setSymvol(11);
       word1.addSymvol(sBukva.getSymvol());
       sBukva.setSymvol(14);
       word1.addSymvol(sBukva.getSymvol());
     // Второе слово  
       sBukva.setSymvol(9);
       word2.addSymvol(sBukva.getSymvol());
       sBukva.setSymvol(0);
       word2.addSymvol(sBukva.getSymvol());
       sBukva.setSymvol(21);
       word2.addSymvol(sBukva.getSymvol());
       sBukva.setSymvol(0);
       word2.addSymvol(sBukva.getSymvol());
     //Составляем строку  
       stroka.addWord(word1.getWord());
       stroka.addWord(word2.getWord());
       System.out.println(stroka.getStroka()); 
     //Привязываем последний символ и проверяем (относиться к избыточному коду) 
       sBukva.setSlovo(word2);
       System.out.println(sBukva.getSymvol()+" относится к слову "+sBukva.getSlovo());
       
   }   
}
0
Эксперт Java
2361 / 2191 / 559
Регистрация: 28.12.2010
Сообщений: 8,578
14.11.2014, 13:12 5
Цитата Сообщение от GurzaG Посмотреть сообщение
Я вот так решил эту задачу может кому пригодиться
как то мягко говоря "так себе"
0
0 / 0 / 0
Регистрация: 14.11.2014
Сообщений: 3
14.11.2014, 17:50 6
Сам учусь это моя вторая решенная задача

Добавлено через 4 часа 22 минуты
говори как есть я только учусь, обижаться не буду я не красна девица.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
14.11.2014, 17:50

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь или здесь.

С помощью регулярки после каждой частицы "не" добавить символ "!"
Добрый день. Как с помощью регулярки после каждой частицы &quot;не&quot; добавить символ &quot;!&quot; В тексте:...

Классы "символ", "строка"
Даны: объект символ, умеющий печатать свое значение и отвечать на запрос о значении своего...

При вводе числа должна добавляться соответствующая запись "год", "года" или "лет" без ограничений в 100 лет
Помогите написать код, под java в котором при вводе числа будет добавляться соответствующая запись...

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


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.