《Java知识点总结系列》第十章基础类篇.docx

上传人:b****4 文档编号:3740592 上传时间:2022-11-25 格式:DOCX 页数:19 大小:43.33KB
下载 相关 举报
《Java知识点总结系列》第十章基础类篇.docx_第1页
第1页 / 共19页
《Java知识点总结系列》第十章基础类篇.docx_第2页
第2页 / 共19页
《Java知识点总结系列》第十章基础类篇.docx_第3页
第3页 / 共19页
《Java知识点总结系列》第十章基础类篇.docx_第4页
第4页 / 共19页
《Java知识点总结系列》第十章基础类篇.docx_第5页
第5页 / 共19页
点击查看更多>>
下载资源
资源描述

《Java知识点总结系列》第十章基础类篇.docx

《《Java知识点总结系列》第十章基础类篇.docx》由会员分享,可在线阅读,更多相关《《Java知识点总结系列》第十章基础类篇.docx(19页珍藏版)》请在冰豆网上搜索。

《Java知识点总结系列》第十章基础类篇.docx

《Java知识点总结系列》第十章基础类篇

知识点预览

Object类

equals方法

toString方法

getClass方法

包装类的概念

包装类的转换

内部类

 

Object类

 

1.Object类的概念

a) java.lang.Object是Java中所有类的直接或者间接父类

classA{

}

classBextendsA{

}

b) 所有类的对象都可以声明成Object引用(多态)

Objecto1=newA();

Objecto2=newB();

c) Object的子类继承了Object的方法

getClass()方法

equals()方法

toString()方法

d)       所有方法子类均可覆盖

getClass()方法

1. getClass方法

返回一个对象的实际类型,不是引用类型

 

equals方法

 

 

 

1.equals方法

比较两个对象的内容是否相等

publicbooleanequals(Objecto);

Strings1=newString(“suns”);

Strings2=newString(“suns”);

System.out.println(s1==s2);//false

System.out.println(s1.equals(s2));//true

 

2.equals方法的默认实现为对比对象的引用(地址)是否相等

Students1=newStudent(“suns”,30);

Students2=newStudent(“suns”,30);

System.out.println(s1.equals(s2));//false

 

3.equals的覆盖

 

      

[java] viewplaincopy

1.package chp10.ex03;  

2.  

3./** 

4. *  

5. * @author Wentasy 

6. * @FullName:

TestObject3.java 

7. * @Description:

 本程序演示了equals方法的覆盖 

8. * @Author:

 Wentasy 

9. * @Create Date:

 2012-8-14 

10. */  

11.public class TestObject3 {  

12.  public static void main(String args[]){  

13.      Student s1 = new Student("suns",30);  

14.      Student s2 = new Student("suns",30);  

15.      System.out.println(s1.equals(s2));  

16.  }  

17.}  

18.  

19.class Student{  

20.    private String name;  

21.    private int age;  

22.    public Student(String name,int age){  

23.        this.name = name;  

24.        this.age = age;  

25.    }  

26.      

27.    public boolean equals(Object o){  

28.        //判断传入对象是否是空  

29.        if(o==null)return false;  

30.        //判断当前对象和参数是否是同一个对象  

31.        if(this==o)return true;  

32.        //判断当前对象和参数是否是同一类型的  

33.        if(this.getClass()!

=o.getClass())return false;  

34.        Student s = (Student)o;  

35.        if(this.name.equals(s.name)&&this.age == s.age){  

36.            return true;  

37.        }else{  

38.            return false;  

39.        }  

40.    }  

41.}     

                                                 

toString()方法

1.      toString方法

返回一个对象的字符串表示形式

publicStringtoString();

TestString

Student@128f6ee(无意义,覆盖toString方法)

128f6ee:

连续存储空间的首地址

 

 

[java] viewplaincopy

1.package chp10.ex04;  

2.  

3./** 

4. *  

5. * @author Wentasy 

6. * @FullName:

TestToString.java 

7. * @Description:

 本程序演示了toString方法的使用 

8. * @Author:

 Wentasy 

9. * @Create Date:

 2012-8-14 

10. */  

11.class Student{  

12.    String name;  

13.    int age;  

14.    public Student(String name,int age){  

15.        this.name = name;  

16.        this.age = age;  

17.    }  

18.    public String toString(){  

19.        return "name:

 "+this.name+" age:

 "+this.age;  

20.    }  

21.}  

22.public class TestToString {  

23.   public static void main(String args[]){  

24.       Student s = new Student("suns",30);  

25.       System.out.println(s);  

26.    }  

27.}  

包装类

 

1.包装类的概念

基本类型----->转换成的类

 

 

 

2.包装类的转换

 

[java] viewplaincopy

1.//a)int转换成Integer  

2.  

3.int i = 10;  

4.Integer I = new Integer(i);  

5.//b)Integer转换成int  

6.  

7.Integer I = new Integer(10);   

8.int i = I.intValue();  

9.//c)String转换成Integer  

10.  

11.String s = "12";  

12.Integer I = new Integer(s);  

13.//d)Integer转换成String  

14.  

15.Integer I = new Integer(23);  

16.String s = I.toString();  

17.  

18.//e)String转换成int  

19.  

20.String s = "20";  

21.int i = Integer.parseInt(s);  

22.//f)int转换成String  

23.  

24.int i = 20;  

25.String s1 = String.valueOf(i);  

26.String s2 = ""+i;  

 

内部类

 

1. 内部类的概念

 

一个类定义在另一个类的里面

publicbooleanequals(Objecto);

Strings1=newString(“suns”);

Strings2=newString(“suns”);

System.out.println(s1==s2);//false

System.out.println(s1.equals(s2));//true

 

2.内部类的分类

成员内部类

静态内部类

局部内部类

匿名内部类

 

3. 成员内部类

a)成员内部类的语法

 

 

[java] viewplaincopy

1.package chp10.ex08;  

2.  

3./** 

4. *  

5. * @author Wentasy 

6. * @FullName:

TestInner.java 

7. * @Description:

 本程序演示了成员内部类的创建 

8. * @Author:

 Wentasy 

9. * @Create Date:

 2012-8-14 

10. */  

11.class MyOuterClass{  

12.    String outValue;  

13.    class MyInnerClass{  

14.        String inValue;  

15.        public void testInner(){  

16.          System.out.println("this is testInner() ");  

17.        }  

18.    }  

19.}  

b)如何获得成员内部类的对象

 

 

[java] viewplaincopy

1.package chp10.ex09;  

2.  

3./** 

4. *  

5. * @author Wentasy 

6. * @FullName:

TestInner.java 

7. * @Description:

 本程序演示了局部内部类的创建和在外部类访问 

8. * @Author:

 Wentasy 

9. * @Create Date:

 2012-8-14 

10. */  

11.class MyOuterClass{  

12.    String outValue;  

13.    class MyInnerClass{  

14.        String inValue;  

15.        public void testInner(){  

16.          System.out.println("this is testInner() ");     

17.        }  

18.    }  

19.    public void testOuter(){  

20.        MyInnerClass in = new MyInnerClass();  

21.        in.testInner();  

22.    }  

23.}  

24.  

25.public class TestInner{  

26.    public static void main(String args[]){  

27.        MyOuterClass out = new MyOuterClass();  

28.        out.testOuter();  

29.    }  

30.}  

 

c) 成员内部类的特点:

可以获得外部类的私有属性

 

[java] viewplaincopy

1.package chp10.ex11;  

2.  

3./** 

4. *  

5. * @author Wentasy 

6. * @FullName:

TestInner.java 

7. * @Description:

 本程序演示了在其他类中访问内部类 

8. * @Author:

 Wentasy 

9. * @Create Date:

 2012-8-14 

10. */  

11.class MyOuterClass{  

12.    private String outValue;  

13.    class MyInnerClass{  

14.        String inValue;  

15.        //可以获得外部类的私有属性  

16.        public void testInner(){  

17.          System.out.println("this is testInner() "+outValue);    

18.        }  

19.    }  

20.    public void testOuter(){  

21.        MyInnerClass in = new MyInnerClass();  

22.        in.testInner();  

23.    }  

24.}  

25.  

26.public class TestInner{  

27.    public static void main(String args[]){  

28.          

29.        //首先创建外部类对象  

30.        MyOuterClass out = new MyOuterClass();  

31.        //然后通过外部类创建内部类  

32.        MyOuterClass.MyInnerClass in = out.new MyInnerClass();  

33.        in.testInner();  

34.          

35.    }  

36.}  

d)成员内部类的封装:

内部类加上private

 

[java] viewplaincopy

1.package chp10.ex12;  

2.  

3./** 

4. *  

5. * @author Wentasy 

6. * @FullName:

TestInner.java 

7. * @Description:

 本程序演示了局部内部类的封装 加上private 

8. * @Author:

 Wentasy 

9. * @Create Date:

 2012-8-14 

10. */  

11.class MyOuterClass{  

12.    private String outValue;  

13.    private class MyInnerClass{  

14.        String inValue;  

15.        public void testInner(){  

16.          System.out.println("this is testInner() "+outValue);    

17.        }  

18.    }  

19.    public void testOuter(){  

20.        MyInnerClass in = new MyInnerClass();  

21.        in.testInner();  

22.    }  

23.}  

24.  

25.public class TestInner{  

26.    public static void main(String args[]){  

27.        MyOuterClass out = new MyOuterClass();  

28.        //The type MyOuterClass.MyInnerClass is not visible  

29.        //MyOuterClass.MyInnerClass in = out.new MyInnerClass();  

30.        //in.testInner();  

31.    }  

32.}  

4.静态内部类

a)静态内部类的语法:

在声明内部类时加上static

b) 如何创建静态内部类对象

 

[java] viewplaincopy

1.package chp10.ex13;  

2.  

3./** 

4. *  

5. * @FullName:

TestInner1.java 

6. * @Description:

 本程序演示了静态内部类的创建和在外部类使用 

7. * @Author:

 Wentasy 

8. * @Create Date:

 2012-8-14 

9. */  

10.class MyOuterClass{  

11.    String outValue;  

12.    static class MyStaticInnerClass{  

13.        String inValue;  

14.        public  void testInner(){  

15.          System.out.println("this is testInner() ");     

16.        }  

17.    }  

18.    public void testOuter(){  

19.        MyStaticInnerClass m = new MyStaticInnerClass();  

20.        m.testInner();  

21.    }  

22.}  

23.  

24.public class TestInner1{  

25.    public static void main(String args[]){  

26.       MyOuterClass m = new MyOuterClass();  

27.       m.testOuter();  

28.    }  

29.}  

30.  

31.package chp10.ex13;  

32.  

33./** 

34. *  

35. * @Author:

 Wentasy 

36. * @FullName:

 TestInner2.java 

37. * @Description:

 本程序演示了静态内部类的创建和在其他类中访问 

38. * @Create Date:

 2012-8-14 

39. */  

40.class MyOuterClass1{  

41.    String outValue;  

42.    static class MyStaticInnerClass{  

43.        String inValue;  

44.        public  void testInner(){  

45.          System.out.println("this is testInner() ");     

46.        }  

47.    }  

48.    public void testOuter(){  

49.        MyStaticInnerClass m = new MyStaticInnerClass();  

50.        m.testInner();  

51.    }  

52.}  

53.  

54.public class TestInner2{  

55.    public static void main(String args[]){  

56.          

57.      //创建静态局部类  

58.       MyOuterClass1.MyStaticInnerClass in =   

59.               new MyOuterClass1.MyStaticInnerClass();  

60.       in.testInner();  

61.    }  

62.}  

5.成员内部类和静态内部类的区别

 a) 在其他类创建内部类对象时,创建的语法不同

b)在静态内部类中只能访问外部类的静态成员,可以定义静态方法

c)在成员内部类中能访问所有静态成员、非静态成员,但不可以定义静态方法

[java] viewplaincopy

1.package chp10.ex14;  

2.  

3./** 

4. *  

5. * @Author:

 Wentasy 

6. * @FullName:

 TestInner1.java 

7. * @Description:

 成员内部类和静态内部类的区别:

在静态内部类中只能访问外部类的静态成员,可以定义静态方法 

8. * @Create Date:

 2012-8-14 

9. */  

10.class MyOuterClass{                                          

11.   private int value;  

12.   private static int svalue;  

13.   public void testOuter(){ }  

14.   public static void testStaticOuter(){}  

15.     

16.   static class MyStaticInnerClass{  

17.      public void testInner(){  

18.          //System.out.println(value); //错误  

19.        

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 求职职场 > 简历

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1