• Января 19, 2019, 02:44:18 pm
• Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Не получили письмо с кодом активации?
Новости: IT направления и поиск первой работы. Смотрите запись нашего вебинара: https://bit.ly/2OGjmHU

Автор Тема: Домашнее задание № 1. "Перевод названия "ACDC" десятичную систему счисления.  (Прочитано 1478 раз)

Alexander Ts

  • Преподаватели
  • Пользователи
  • *
  • Сообщений: 10718
    • Просмотр профиля
    • E-mail
Євген Іванов
В Java не используют открытые свойства класса, так что такой код неудачен:
        Student[] stArray = new Student[10];
А в этой строке:
                if (!stArray[9]) == null) throw new MyException();
Ну вы хотя бы скобочки посчитали одна открывающаяся и две закрывающихся. Понятно, что такая строка даже компилироваться не будет.
А вот так будет:
if (stArray[9] != null) {
throw new MyException();
}
   

Переменные ссылочного типа данных в Java не сравнивают оператором ==. Так что такой код неудачен:
                        if (stArray[i] == s) {

Євген Іванов

  • Пользователи
  • *
  • Сообщений: 72
    • Просмотр профиля
    • E-mail
Попробовал улучшить класс группа, согласно Вашим указаниям. Получилось не очень. Мейн сломался.
import java.util.Arrays;

public class Group {
Object[] stArray = new Object[10];

public Group(Object[] stArray) {
super();
this.stArray = stArray;
}

/**
* @return the stArray
*/
public Object[] getStArray() {
return stArray;
}

/**
* @param stArray
*            the stArray to set
*/
public void setStArray(Object[] stArray) {
this.stArray = stArray;
}

public void add(Student s) throws MyException {
if (stArray[9].equals(null) == false) {
throw new MyException();
}
for (int i = 0; i < stArray.length; i++) {
if (stArray[i].equals(null) == true) {
stArray[i] = s;
break;
}
}
}

public void print() {
for (int i = 0; i < stArray.length; i++) {
if (stArray[i].equals(null) == true) {
break;
} else {
System.out.println(stArray[i]);
}

}
}

public void delete(Student s) {
for (int i = 0; i < stArray.length; i++) {
if (stArray[i] == s) {
stArray[i] = null;
}
}
}

}


Alexander Ts

  • Преподаватели
  • Пользователи
  • *
  • Сообщений: 10718
    • Просмотр профиля
    • E-mail

Євген Іванов

Так. Это когда я такой код советовал то?

Object[] stArray = new Object[10];
По условию задания должен быть массив из 10 Студентов. Зачем вы его на Object заменили? Верните как было. Только модифигатор сделайте private.

Ну сравнение как не работало так и не работает. Ну не сравнивают ссылочные типы данных оператором ==

Так, что такой код неудачен:

if (stArray[i] == s) {

Євген Іванов

  • Пользователи
  • *
  • Сообщений: 72
    • Просмотр профиля
    • E-mail
В методе add не знаю, как показать, что последний объект уже заполнен, чтобы кинуть исключение

package com.gmail.ivanovev77;

import java.util.Arrays;

private class Group {
   private Student[] stArray = new Student[10];

   

   public Group(Student[] stArray) {
      super();
      this.stArray = stArray;
   }

   public Student[] getStArray() {
      return stArray;
   }

   public void setStArray(Student[] stArray) {
      this.stArray = stArray;
   }

   public void add(Student s) throws MyException {
      if (stArray[9].equals(null)) {
         throw new MyException();
      }
      for (int i = 0; i < stArray.length; i++) {
         if (stArray.equals(null)) {
            stArray.equals(s);
            break;
         }
      }
   }

   public void print() {
      for (int i = 0; i < stArray.length; i++) {
         if (stArray.equals(null) == true) {
            break;
         } else {
            System.out.println(stArray);
         }

      }
   }

   public void delete(Student s) {
      for (int i = 0; i < stArray.length; i++) {
         if (stArray.equals(s)) {
            stArray=null;
         }
      }
   }
   public String toString() {
        Arrays.sort(stArray);
      return ("Сортировка в алфавитном порядке:\n"+Arrays.toString(stArray));
   }
}

« Последнее редактирование: Января 10, 2019, 07:59:54 pm от Євген Іванов »

Alexander Ts

  • Преподаватели
  • Пользователи
  • *
  • Сообщений: 10718
    • Просмотр профиля
    • E-mail
Євген Іванов

Попробуйте посмотреть на готовое решение  - https://github.com/TsymbaliukOleksandr1981/JavaOOPTask/blob/master/Task3/src/com/gmail/tsa/Group.java

Если появятся вопросы напишите.

Євген Іванов

  • Пользователи
  • *
  • Сообщений: 72
    • Просмотр профиля
    • E-mail
Я бы сам не смог написать такой код. Что делать? Кто-нибудь из тех, кто дистанционно обучается и раньше не программировал, сделал эту задачу?
« Последнее редактирование: Января 11, 2019, 01:15:16 pm от Євген Іванов »

Alexander Ts

  • Преподаватели
  • Пользователи
  • *
  • Сообщений: 10718
    • Просмотр профиля
    • E-mail

Євген Іванов

О каком именно коде идет речь?
А так да большинство онлайн слушателей примерно так и решает эту задачу. Можете убедиться в этом просто просмотрев их темы.
Если возникают вопросы не стесняйтесь их задавать на этом форуме. Я тут как раз для того, что бы отвечать на ваши вопросы :).

Євген Іванов

  • Пользователи
  • *
  • Сообщений: 72
    • Просмотр профиля
    • E-mail
О коде, который Вы мне скинули.
Просматривал ответы многих на этом форуме. Правильных ответов на сложные задачи не видел. Ладно, суть не в этом.
Как можно посмотреть/прочитать документацию, описывающую классы Java и т. д. Это можно сделать через Eclipse?


Alexander Ts

  • Преподаватели
  • Пользователи
  • *
  • Сообщений: 10718
    • Просмотр профиля
    • E-mail
Євген Іванов

Вы имеете в виду системные классы в Java ? Если да то можно для этого нужно доставить документацию, после этого в Eclipse зажимаете ctr + правой кнопкой мыши щелкаете на интересующем вас встроенном классе или методе, и откроеться его исходный код.
А вот если вам нужно описание их тогда самая полная документация по Java на сайте оракле.

Євген Іванов

  • Пользователи
  • *
  • Сообщений: 72
    • Просмотр профиля
    • E-mail
А как можно догрузить документацию?

Alexander Ts

  • Преподаватели
  • Пользователи
  • *
  • Сообщений: 10718
    • Просмотр профиля
    • E-mail
Євген Іванов

Так как я пользователь Linux то могу сказать как это делается в этой ОС. Надеюсь в Windows примерно так же.

Я использую Open JDK

Для получения доступа к документации и исходному коду нужно доставить такие дополнения

openjdk-8-doc - OpenJDK Development Kit (JDK) documentation
openjdk-8-source - OpenJDK Development Kit (JDK) source files

И все заработает