[Javalist] tomb hiba

coder at gmail.hu coder at gmail.hu
2013. Már. 12., K, 22:44:22 CET


  

A nepáli birkapásztoros cikket már meg is szavaztam.


Getter/Setter... nagy dilemma, ebből a szempontból ugye semmi értelme
nem volna; semmilyen körülmények közt. 

Ám ugye az encapsulationt
szeretjük. No meg az okfejtést is, ezért ezt meg is hagyom kivesézésre a
nálam ehhez jobban konyító pásztoroknak. 

Ertek ugye nem immutable,
ámde ojjektum (300000... nem... 30000... vagy nem tudom...), szinte
teljesen feleslegesen; jó, érték 1..9, illetve a null, ami az üres mezőt
takarja - nálam is ezokból lett int helyett Integer. A clone metódust,
hááááát, elszúrtam :) Nem mindig friss az ember. 

Azért nem az eredeti
problémát oldottam meg, mert az leginkább abból adódik, hogy keverednek
az (amúgy megkerült) absztrakciós szintek, objektum, aminek nem kellene
annak lennie, és nem az, aminek pedig kéne - a mátrix, mint olyan, maga
a bűz. Azt megtartom azokra az alkalmakra, amikor ".386p" a forráskódom
első sora, vagy amikor el van wrappelve valami mögé, amivel dolgozni is
lehet (a példának is ilyesmi lett volna a lényege). 

Mindent
összevetve, azért örülök, hogy megihlettelek :D 

Bence 

On Mon, 11 Mar
2013 11:05:09 +0100, Peter Verhas wrote: 

> Itten komoly bajok vannak
ezzel a példával. 
> Először is, a clone() metódusban nincs y, kimaradt
a második, belső ciklus. 
> Pont az eredeti problémát, hogy az Ertek-ből
nem keletkezik új copy nem oldja meg. Persze ezt kikerülöd azzal, hogy
helyette immutable Integer-t használsz, amivel csökkented az absztakciós
szintet, és ezért nincs probléma. Mintapéldának kifejezetten rossz.
Egyébként is. 
> Aztán meg nagyon nem látom értelmét a setternek, meg a
getternek. Miért olvashatóbb a 
> 
>> copy.setValue(x, y,
values[x][y]);
> mint 
> copy.values[x][y] = values[x][y] 
> Csak azért
settert meg gettert használni, mert az divatos? Mi az értelme a
setter-nek, meg a getter-nek? Nah, majd erről is írok egy birkapásztor
cikket. Elmagyarázom a birkáknak a lényeget (bocs, ez csak rossz vicc
volt, nagyon beképzelt a mondat, de nem bírom kihagyni a poént). 
> 
>
--
> Verhás Péter
> peter at verhas.com [4]
> +36(30)9306805
> skype:
verhas 
> 
> On 2013.03.10., at 23:28, coder at gmail.hu [5] wrote: 
> 
>>
How about this approach? 
>> 
>> // A 9 egy magic number...
>> public
class Board { 
>> 
>> private final Integer[][] values = new
Integer[9][9];
>> 
>> public void setValue(int x, int y, Integer value)
{
>> values[x][y] = value;
>> }
>> 
>> public Integer getValue(int x,
int y) {
>> return values[x][y];
>> }
>> 
>> public Board clone() {
>>
Board copy = new Board();
>> for (int x = 0; i < 9; i++) {
>>
copy.setValue(x, y, values[x][y]);
>> }
>> }
>> } 
>> 
>> Próbáld meg
refaktorálni egy kicsit a kódot, hátha segít. Jómagam legalábbis
preferálni szoktam a minél kisebb, könnyen menedzselhető darabokat;
általában könnyebb is úgy adott problémákra megoldást találni. 
>> 
>>
Üdv.: Bence 
>> 
>> On Sun, 10 Mar 2013 20:11:18 +0200, Bara Zoltan
wrote: 
>> 
>>> Sziasztok
>>> 
>>> Van itt egy jelenseg amit nem ertek
tabla erteket elmentenem 
>>> tablaTemp-be majd valtoztatom
>>> a tablat
es vissza kene tolteni az eredeti ertekeket.
>>> Eloszor probalkoztam a
tabla = tablaTemp utasitassal persze sikertelenul.
>>> Aztan olvastam
hogy System.ArrayCopy a megoldas.
>>> De nekem megse ugy tunik.
>>> Ime
a kodreszlet:
>>> 
>>> public class Sudoku extends Observable {
>>>
private Ertek tabla[][] = new Ertek[9][9];
>>> private Ertek
tablaTemp[][] = new Ertek[9][9];
>>> ....
>>> 
>>> // visszaad egy ket
dimenzios tombot ami tele van a tabla elso 
>>> lehetseges soraival
>>>
e = elsoSorGenerate();
>>> 
>>> //atmentem a tablat hogy legyen meg az
eredeti
>>> 
>>> for (int sor = 0; sor < tabla.length; sor++) {
>>>
System.arraycopy(tabla[sor], 0, tablaTemp[sor], 0, 
>>>
tabla[sor].length);
>>> 
>>> }
>>> 
>>> if (e[tablaMutato][0] != 0){
>>>
for (int oszlop = 0; oszlop < 9; oszlop++) { //ITT 
>>> A HIBA ATIRODIK
A TEMP ARRAY IS
>>>
tabla[0][oszlop].setErtek(e[tablaMutato][oszlop]);
>>> }
>>> }
>>> 
>>>
Na ezt nem ertem hogy mutat arra cimre a tabla es a tablaTemp, hogy 
>>>
lehet megvaltoztatni a tabla ertekeit hogy megmaradjon a tablaTemp.
>>>

>>> Udv
>>> Zoli
>>> 
>>>
_______________________________________________
>>> Javalist mailing
list
>>> Javalist at lists.javaforum.hu [1]
>>>
http://lists.javaforum.hu/mailman/listinfo/javalist [2]
>> 
>>
_______________________________________________
>> Javalist mailing
list
>> Javalist at lists.javaforum.hu [3]
>>
http://lists.javaforum.hu/mailman/listinfo/javalist

 


Links:
------
[1] mailto:Javalist at lists.javaforum.hu
[2]
http://lists.javaforum.hu/mailman/listinfo/javalist
[3]
mailto:Javalist at lists.javaforum.hu
[4] mailto:peter at verhas.com
[5]
mailto:coder at gmail.hu
--------- következő rész ---------
Egy csatolt HTML állomány át lett konvertálva...
URL: <http://lists.javaforum.hu/pipermail/javalist/attachments/20130312/b4682be1/attachment.html>


További információk a(z) Javalist levelezőlistáról