Oldalak

A következő címkéjű bejegyzések mutatása: Java. Összes bejegyzés megjelenítése
A következő címkéjű bejegyzések mutatása: Java. Összes bejegyzés megjelenítése

2013. február 4., hétfő

C# összetett aritmetikai értékadó műveletek

Műveleti jel Használati alak Kifejezése Művelet
+= x += 4 x = x + 4

összeadás

-=

x -= 4 x = x - 4

kivonás

*= x *= 4 x = x * 4

szorzás

/= x /= 4 x = x / 4

osztás

%= x %= 4 x = x % 4 maradék képzés (modulo)

Provider pattern

public static class Note 
{
  private static NoteProvider provider; 
  static Note() 
  {
    string providerName = ConfigurationManager.AppSettings["noteProvider"]; 
    Type providerType = Type.GetType(providerName); 
    provider = (NoteProvider)Activator.CreateInstance(providerType); 
  }
  public static string GetNote() 
  {
    return provider.GetNote(); 
  }
}
 
public abstract class NoteProvider 
{
  public abstract string GetNote(); 
}
 
public class FirstNoteProvider : NoteProvider 
{
  public override string GetNote() 
  {
    return "első note"; 
  }
}
 
  
public class SecondNoteProvider : NoteProvider
{
  public override string GetNote() 
  {
    return "második note"; 
  }
}

Thread safe Singleton minta

class Program 
{
  static void Main(string[] args)
  {
  Singleton s, s2;
  s = Singleton.GetInstance();
  s2 = Singleton.GetInstance();
 
  // a két objektum referenciája egyenlő lesz
  Console.WriteLine(ReferenceEquals(s,s2));
  }
}
 
class Singleton
{
  private static Singleton instance; 
 
  /// statikus konstruktor
  /// a legelső osztáylra történő hivatkozákor lefut
  static Singleton()
  {
  instance = new Singleton();
  }
 
  public static Singleton GetInstance()
  {
  return instance;
  }
}

2012. november 2., péntek

Eclipse gyorsbillentyűk

Ctrl+click: navigálás a kódban
Ctrl+space: intelli sense és „kódgenerálás” ha egy felüldefiniálandó metódus első pár betűjét ütjük le, majd Enter-t nyomunk
Alt+Shift+R: változó átnevezése (mindenhol)
Ctrl+Shift+T: típus keresése
F3: deklaráció megnyitása függvényen, osztályon
Ctrl+Alt+H: hívás hierarchia megjelenítése
Ctrl+Shift+O: import fix
Ctrl+Shift+F: forrás formázása
Ctrl+F6: forrásfájlok közti váltás
Ctrl+Shift+G: használat listázása
Ctrl+Shift+L: hotkey lista
Ctrl+PageUP/PageDown: Navigálás a megnyitott állományok között
Alt+Bal/Jobb: Ugrás a kód korábban használt szakaszára
Ctrl+1: Eclipse automatikus javaslat az adott helyen
Ctrl+Shift+R: erőforrás keresés
Alt+Shift+A, majd S: Szöveges konstans kihelyezése a szöveges értékeket tartalmazó Android strings.xml állományba

2012. augusztus 7., kedd

Egyszerű "kitalálós" játék

Ez az egyszerű játék igazából a konzolról történő beolvasást demonstrálja. A példában kétféle beolvasási mód van: az egyik egy int szám beolvasása kbd.nextInt(), a másik egyetlen karakter beolvasása a konzolról kbd.findWithinHorizon(".", 0).charAt(0). Ezen kívül természetesen a Scanner osztálynak még számos más metódusa létezik.
package inputreading;

import java.util.Date;
import java.util.Random;
import java.util.Scanner;

public class InputReading {

    public static void main(String[] args) {
        // billentyűzet scanner
        Scanner kbd = new Scanner(System.in);
        
        char cAnswer; 
        int iTip;
        boolean bEnd;
        Date dtStart;
        Date dtEnd;
        
        do {
            dtStart = new Date();
            int iTryCnt = 0;
            // feladvány előállítása
            int iNum = new Random().nextInt(10) + 1;
            do {
                System.out.println(++iTryCnt + ". kísérlet");
                System.out.print("Írd be a tippet: ");
                // int szám beolvasása a konzolról
                iTip = kbd.nextInt();
            } while (iTip != iNum);

            dtEnd = new Date();
            
            Double dDifference = (dtEnd.getTime() - dtStart.getTime()) / 1000.0;
            System.out.println(dDifference + " másodperc alatt találtad ki a feladványt");
            System.out.println(iTryCnt + " lépésből találtad ki a számot");
            System.out.println("");

            do {
                System.out.println("Akarsz újra játszani? (i/n)");
                cAnswer = Character.toLowerCase(kbd.findWithinHorizon(".", 0).charAt(0));
            } while (cAnswer != 'i' && cAnswer != 'n');
            
            bEnd = (cAnswer == 'n');
            // ismételd addig, amíg bEnd true nem lesz
        } while (!bEnd);
    }
}