oktatas:programozas:java:java_specialitasok
Tartalomjegyzék
Java specialitások
- Szerző: Sallai András
- Copyright © 2011, Sallai András
- Licenc: CC BY-SA 4.0
- Web: https://szit.hu
Osztályok mezői, metódusainak kiíratása
A Java nyelven létezik egy Class osztály. Ezzel lekérdezhetők egy osztály metódusai, konstruktorai, mezői stb.
- osztaly.java
import java.lang.reflect.Constructor; import java.lang.reflect.Field; import java.lang.reflect.Method; import java.io.*; class ref { public static void main(String[] args) { try { // Megadjuk melyik osztályra vagyunk kíváncsiak Class cl = Class.forName("java.lang.Thread"); // getDeclaredFields() a konstruktorok lekérdezése Constructor cnst[] = cl.getConstructors(); // getFields() az osztály deklarált mezőit adja vissza Field fld[] = cl.getDeclaredFields(); // getMethods() az osztály deklarált metódusait adja vissza Method mtd[] = cl.getMethods(); System.out.println("Az osztály konstruktorai"); for (int i = 0; i < cnst.length; i++) { System.out.println(cnst[i].getName()); } System.out.println("A mezők nevei"); for (int i = 0; i < fld.length; i++) { System.out.println(fld[i].getName()); } System.out.println("Metódusok nevei"); for (int i = 0; i < mtd.length; i++) { System.out.println(mtd[i].getName()); } } catch (ClassNotFoundException e) { e.printStackTrace(); } try { System.in.read(); } catch(Exception e) {} } }
- Program.cs
using System; using System.Reflection; class Program { static void Main() { Console.WriteLine("Egy objektumon milyen metodusok hasznalhatok"); Object obj = new Object(); Type t = obj.GetType(); foreach (MethodInfo mi in t.GetMethods()) Console.WriteLine(mi.Name); } }
Linkek
Dinamikus adatszerkezetek
A teljesség igénye nélkül:
- Class LinkedList<E>
- Class ArrayList<E>
- Class Hashtable<K,V>
- Class HashMap<K,V>
Statikus importálás
Statikus importálás esetén nem szükséges újból és újból beírni egy osztály nevét. Elég a mező vagy metódus nevét.
- Program01.java
import static java.lang.Math.PI; import static java.lang.Math.pow; class Program01 { public static double gombTerfogat(double sugar){ return 4*PI*pow(sugar,2); } public static void main(String args[]) { System.out.println(gombTerfogat(30)); } }
Az összes metódus importálható egyszerre:
import static java.lang.Math.*;
A System osztály:
- Program01.java
import static java.lang.Math.PI; import static java.lang.Math.pow; import static java.lang.System.out; class Program01 { public static double gombTerfogat(double sugar){ return 4*PI*pow(sugar,2); } public static void main(String args[]) { out.println(gombTerfogat(30)); } }
A math csomag
Olyan számváltozókat hozhatunk létre velük amelyek sosem tudnak túlcsordulni.
Osztályok:
- BigDecimal (Tetszőleges pontosságú valós)
- BigInteger (tetszőleges pontosságú egész)
- Program.java
import java.math.BigInteger; class Program { public static void main(String args[]) { BigInteger a = new BigInteger("30"); System.out.println(a.intValue() * 2); } }
Faktoriális nagy számokkal
- Program01.java
import java.math.BigInteger; class Program01 { private static BigInteger fact(int n){ BigInteger bd = null; if(n==0){ bd = new BigInteger("1"); }else{ bd = new BigInteger("1"); for(int i=1;i<=n;i++){ bd = bd.multiply(BigInteger.valueOf(i)); } } return bd; } public static void main(String[] args) { System.out.println(fact(1000)); } }
A sztringek
A Java nyelvben a String osztály implementálja a következő interfészeket:
- Serializable
- CharSequence
- Comparable<String>
Így sokszor String típus helyett az API dokumentációban CharSequence látható.
Linkek
oktatas/programozas/java/java_specialitasok.txt · Utolsó módosítás: 2024/02/26 17:06 szerkesztette: admin