A Java nyelven létezik egy Class osztály. Ezzel lekérdezhetők egy osztály metódusai, konstruktorai, mezői stb.
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) {} } }
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); } }
A teljesség igénye nélkül:
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.
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:
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)); } }
Olyan számváltozókat hozhatunk létre velük amelyek sosem tudnak túlcsordulni.
Osztályok:
import java.math.BigInteger; class Program { public static void main(String args[]) { BigInteger a = new BigInteger("30"); System.out.println(a.intValue() * 2); } }
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 Java nyelvben a String osztály implementálja a következő interfészeket:
Így sokszor String típus helyett az API dokumentációban CharSequence látható.