1.當(dāng)在內(nèi)部類中使用this指的就是內(nèi)部類的對象, 為了訪問外層類對象,就可以使用外層類名.this來訪問。
2.在java中,,每個class都有一個相應(yīng)的Class對象,,當(dāng)編寫好一個類,編譯完成后,,在生成的.class文件中,,就產(chǎn)生一個Class對象,用來表示這個類的類型信息,。獲得Class實例的三種方式:
1). 利用對象調(diào)用getClass()方法獲取該對象的Class實例
2). 使用Class的靜態(tài)方法forName(),,用類的名字獲取一個Class實例
3). 運用.calss的方式獲取Class實例,對基本數(shù)據(jù)類型的封裝類,,還可以采用.TYPE來獲取對應(yīng)的基本數(shù)據(jù)類型的Class實例,。
以下是TestClass.java代碼:
- public class TestClass {
- public static void main(String[] args) {
-
-
- System.out.println("before new Point()");
- new Point();
- System.out.println("after new Point()");
- try {
- Class.forName("Line");
- } catch (Exception e) {
- e.printStackTrace();
- }
-
-
- Point pt = new Point();
- Class c1 = pt.getClass();
- System.out.println(c1.getName());
-
-
- try {
- Class c2 = Class.forName("Point");
- System.out.println(c2.getName());
- Point pp = (Point) c2.newInstance();
-
- pp.output();
- } catch (Exception e) {
- e.printStackTrace();
- }
-
-
- Class c3 = Point.class;
- System.out.println(c3.getName());
-
-
- Class c4 = int.class;
- System.out.println(c4.getName());
-
-
- Class c5 = Integer.TYPE;
- System.out.println(c5.getName());
- Class c6 = Integer.class;
- System.out.println(c6.getName());
- }
- }
-
- class Point {
- static {
- System.out.println("loading point");
- }
-
- void output() {
- System.out.println("x=" + x + ",y=" + y);
- }
- int x, y;
- }
-
- class Line {
- static {
- System.out.println("loading Line");
- }
- }