Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

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

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

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 17.03.2009, 10:22   #1
fate
Форумчанин
 
Аватар для fate
 
Регистрация: 17.03.2009
Сообщений: 318
По умолчанию Помогите разобраться в коде

есть код простой проги, он приведен ниже:
Код:
class gor{
	private double sell;
	private String name;
	int id;
	public static int nextId=1;
	{
		id=nextId;
		nextId++;
	}

		 int getId(){return id;}

		gor(double s, String n){
			sell=s;
			name=n;
			}
		public double sss(){return sell;}
		public String nnn(){return name;}

		public double plus(double e3){
			sell=(sell/100)*(e3+100);
			return sell;
			}
	}

//----------------------------------------------------

class My44{
public static void main(String[] args){
gor ret[]=new gor[4];
ret[0]=new gor(23.5,"Artem");
ret[1]=new gor(55.57,"Ira");
ret[2]=new gor(276,"Lazarenko");
ret[3]=new gor(321,"Vasya");

	for(int w=0;w<ret.length;w++){
		System.out.println(ret[w].getId()+"  "+ret[w].nnn()+" "+ret[w].sss());
		}

     System.out.println("-----------------------");
     for(int w=0;w<ret.length;w++){
     	System.out.println(ret[w].nnn()+"  "+ret[w].plus(75));
		}

	 System.out.println("-------NEW SELL----------");

}
}

результат работы этой проги такой: 
1  Artem 23.5
2  Ira 55.57
3  Lazarenko 276.0
4  Vasya 321.0
-----------------------
Artem  41.125
Ira  97.24749999999999
Lazarenko  482.99999999999994
Vasya  561.75
-------NEW SELL----------

т.е. id нумеруется нормально от 1 до 4



и такой же код но с небольшими разграничениями:


class gor{
	private double sell;
	private String name;
	
	public static int nextId=1;
	{
		
		nextId++;
	}

	

		int getId(){return nextId;}

		gor(double s, String n){
			sell=s;
			name=n;
			}
		public double sss(){return sell;}
		public String nnn(){return name;}

		public double plus(double e3){
			sell=(sell/100)*(e3+100);
			return sell;
			}
	}

//----------------------------------------------------

class My44{
public static void main(String[] args){
gor ret[]=new gor[4];
ret[0]=new gor(23.5,"Artem");
ret[1]=new gor(55.57,"Ira");
ret[2]=new gor(276,"Lazarenko");
ret[3]=new gor(321,"Vasya");

	for(int w=0;w<ret.length;w++){
		System.out.println(ret[w].getId()+"  "+ret[w].nnn()+" "+ret[w].sss());
		}

     System.out.println("-----------------------");
     for(int w=0;w<ret.length;w++){
     	System.out.println(ret[w].nnn()+"  "+ret[w].plus(75));
		}

	 System.out.println("-------NEW SELL----------");




}
}
в отличии от первого кода здесь возвращается переменная nextId а не id
но результат работы этой проги такой:

5 Artem 23.5
5 Ira 55.57
5 Lazarenko 276.0
5 Vasya 321.0
-----------------------
Artem 41.125
Ira 97.24749999999999
Lazarenko 482.999999999999
Vasya 561.75
-------NEW SELL----------

Но я понять не могу почему теперь номер не 1-4 а все 5

Последний раз редактировалось rpy3uH; 17.03.2009 в 21:02.
fate вне форума Ответить с цитированием
Старый 17.03.2009, 11:36   #2
bohdan4ik
Рэдиска
Форумчанин
 
Регистрация: 10.09.2008
Сообщений: 250
По умолчанию

Код:
ret[w].getId()+" "+ret[w].nnn()+" "+ret[w].sss()
Что за названия переменных и методов? Может из-за этого и не можете понять? Обычно, если можно легко прочесть программу, то становится и легче понять что и как она делает...
bohdan4ik вне форума Ответить с цитированием
Старый 17.03.2009, 17:56   #3
alexinspir
Новичок
Джуниор
 
Аватар для alexinspir
 
Регистрация: 26.08.2008
Сообщений: 1,010
По умолчанию

тег [сode]!
на работе хватает быдлокодерских кодов других прогромистов.
даже просто смотреть на код нет желания.
ромик0: Cколько получают здешние модераторы?
pu4koff: У модераторов сдельная оплата труда. Выдал предупреждение - плюс к премии. Выдал бан - лучший модератор месяца со всеми вытекающими.
alexinspir вне форума Ответить с цитированием
Старый 17.03.2009, 21:42   #4
fate
Форумчанин
 
Аватар для fate
 
Регистрация: 17.03.2009
Сообщений: 318
По умолчанию

все с вами ясно ((
я бы мог вообще весь код не выкладывать, пипец не так назвал переменные, что за бред. Мой вопрос вообще можно задать и без кода.
fate вне форума Ответить с цитированием
Старый 17.03.2009, 21:51   #5
bohdan4ik
Рэдиска
Форумчанин
 
Регистрация: 10.09.2008
Сообщений: 250
По умолчанию

Цитата:
Сообщение от fate Посмотреть сообщение
Мой вопрос вообще можно задать и без кода.
Ошибаетесь, нельзя. Честно говоря, копаться в чужом, извините меня, говнокоде, очень сложно. Да, разобраться можно, заменить имена на нормальные (сначала нужно понять что за программа, какой метод что делает и какие переменные за что отвечают), но это стоит времени.
bohdan4ik вне форума Ответить с цитированием
Старый 17.03.2009, 22:10   #6
fate
Форумчанин
 
Аватар для fate
 
Регистрация: 17.03.2009
Сообщений: 318
По умолчанию

я нужное специально выделил красным. А все что черным особо и не нужно.
Код:
 int id;
	public static int nextId=1;
	{
		id=nextId;
		nextId++;
	}

		 int getId(){return id;}
Вопрос в том что если метод getId (int getId(){return id;}) возвращает переменную id, то программа работает как надо, т.е. для каждого имени свой номер.
1 Artem 23.5
2 Ira 55.57
3 Lazarenko 276.0
4 Vasya 321.0


если же метод getId возвращает переменную nextId, результат программы вообще непонятный:
5 Artem 23.5
5 Ira 55.57
5 Lazarenko 276.0
5 Vasya 321.0


почему-то номер для каждого имени 5, ну откуда там 5 берется?
fate вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
ПОмогите разобраться в коде программы на С++ Ajanami Помощь студентам 4 26.11.2008 15:24
Вылетает Out of Bounds в коде помогите разобраться Airou Общие вопросы Delphi 5 24.07.2008 09:56