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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 25.01.2012, 00:02   #1
Dark_zarich
 
Регистрация: 21.01.2012
Сообщений: 6
По умолчанию Изменение переменной в классе и др.

Помогите пожалуйста.У меня 2 вопроса :
1) как сделать что-бы переменная id класса User увеличивалась на 1 но не имела одинакового значения между объекстами (например user[0] - id=1 , user[1]- id=2 и тд.)
2) удалить элемент массива объекта из памяти в случае несоответствия
(if (dost1==true && dost2==true) {nick=s[0]; password=s[1]; id++;}
else {nick="------"; password="------";} - проверка)

код :

Код:
public class My 
{
	public static void main(String[] args) 
	{
	User[] users = new User[5];
	users[0]= new User("=DUO=","LolcoOMG","2541 - Уважаемый");
	users[1]= new User("Dtreads","12345","-123 - Плохой человек");
	users[2]= new User("+SeT-","Set+set-","115 - Хороший человек");
	users[3]= new User("OMG","Omg2Omg4Omgs6","489 - Интелегент");
	users[4]= new User("TNTmega","98765678","4 - Новичек");
	getUsers(users);
	}
	
	public static void getUsers(User[] users)
	{
		boolean b,bb;
		for(int x=0;x<users.length;x++)
			{
				b=users[x].getNick().equals("------");
				bb=users[x].getPassword().equals("------");
				if (b==false && bb==false) {System.out.println("ник : "+users[x].getNick()+", пароль: "+users[x].getPassword()+", id: "+users[x].id+", " +"репутация: "+users[x].reputation);}
				else {System.out.println("          НЕТ ДАННЫХ.        ");}
			}
	}
}

class User
{
private String nick;
private String password;
int id=0;
String reputation;

	public User(String n,String p,String repa)
	{
		setParametrs(n,p);
		reputation=repa;
	}	
	
	public void setParametrs(String Newname,String Newpassword)
	{	
	boolean dost1,dost2;
	dost1=false;
	dost2=false;
	String s[]=new String[2];
	s[0]=Newname;
	s[1]=Newpassword;
	if (s[0].length()<=8) {dost1=true;} else {}
	if (s[1].length()<=8) {dost2=true;} else {}
	if (dost1==true && dost2==true) {nick=s[0]; password=s[1]; id++;}
	else {nick="------"; password="------";}
	}
	
	public String getNick()
	{
	return nick;
	}
	public String getPassword()
	{
	return password;
	}
}
Dark_zarich вне форума Ответить с цитированием
Старый 25.01.2012, 09:55   #2
BOBAH13
Android Developer
Старожил Подтвердите свой е-майл
 
Аватар для BOBAH13
 
Регистрация: 19.02.2007
Сообщений: 3,708
По умолчанию

1. Код ужасен везде
2. Вопрос 1й не ясен, она и так разные значения имеет. Ну или как я догадываюсь, дайте ей модификатор static
3. 2й вопрос в чем заключается?
BOBAH13 вне форума Ответить с цитированием
Старый 25.01.2012, 14:45   #3
Dark_zarich
 
Регистрация: 21.01.2012
Сообщений: 6
По умолчанию

Цитата:
Сообщение от BOBAH13 Посмотреть сообщение
1. Код ужасен везде
2. Вопрос 1й не ясен, она и так разные значения имеет. Ну или как я догадываюсь, дайте ей модификатор static
3. 2й вопрос в чем заключается?
1. ?
2. если добавить static то переменная будет одинакова для всех объектов данного класса а мне надо что бы это была просто переменная и что бы не было у них одинаковых одинаковых значений и с каждым объявлением нового объекта эта переменная становилась больше на 1.
3. при объявлении объекта в памяти выдел. место мне надо это место удалить при желании. то бишь например идет s[1] s[2] s[3] s[4] и напимер удалить s[3] - сылка на объект есть но данных недает.
Dark_zarich вне форума Ответить с цитированием
Старый 28.01.2012, 00:17   #4
dox07
Пользователь
 
Регистрация: 16.02.2010
Сообщений: 26
По умолчанию

2. Добавить статическую переменную и метод инкрементирования, т.е. так:

Код:
private static int idUser = 1;

private static int  getIdForUser()
{
      idUser++;
}
Затем в конструкторе вызывай так:

Код:
public User(String n,String p,String repa)
	{
		setParametrs(n,p);
		reputation=repa;
                this.id = User.getIdForUser();
	}
Получается что при создании объекта у тебя будет уникальный id.
Примерно так, если нигде не ошибся.
dox07 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Изменение переменной в процедуре onkofe Общие вопросы Delphi 10 06.11.2011 23:01
Изменение переменной в Timer Welotirit Общие вопросы Delphi 6 13.03.2011 19:27
Изменение переменной Алексей_xXx Общие вопросы C/C++ 1 11.12.2009 10:49
Изменение переменной Ant1Player PHP 8 30.03.2009 22:07
Изменение переменной yura-cat Помощь студентам 7 20.09.2008 17:42