----------- android培训java培训、java学习型技术博客、期待与您交流! -----------

  1. /* 
  2. 需求:面向对象的基础基本学完了,也该做下总结了 
  3. 分析: 
  4. 1,分别从面向对象的各种概念,组成来分析 
  5. 2,从类,对象,封装,继承,多态来解释面向对象 
  6. 3,类中的属性,方法,构造函数,静态方法,静态代码块等, 
  7.  
  8. 1,面向对象:把功能封装起来形成对象,让这个对象帮我们完成我们需要的功能 
  9. 主要是区别与面向过程,面向过程是把问题一直最小细分化,而面向对象是形成 
  10. 不同的功能对象,从劳动者变成指挥者。 
  11. 2,java是一种编译型语言,跨平台语言,具有封装,继承,多态等特性 
  12. 3,类:是创建对象的图纸,抽象性,有属性,方法;对象:根据类形成具体的实体, 
  13. 根据类创建的对象具有具体的属性和具体的方法。 
  14. 4,封装:把功能封装起来,便于使用和维护。特别从私有属性,方法,内部类可以看出封装的好处 
  15. 5,继承:可以提高代码的重用性,也为多态的实现提供了前提条件。 
  16. 6,多态:多种形态可以共存,主要是丰富了我们的引用,特别从接口可以看出,我们可以先不用去实现 
  17. 怎么实现这个功能,可以先定义这个功能,等实现类去具体完成,但是我们可以用接口的引用去指向实现类 
  18. 的实体,就是形参我们可以用父类或者接口的引用。 
  19. 7,类:包括属性(可以用名字抽取法),方法(实现一些功能,动词抽取法),每个类一般都包括属性, 
  20. 方法,构造函数(用来初始化对象),静态属性(一些对象共有的属性,存在方法区中,随着类的加载而加载), 
  21. 静态方法(随着类的加载而加载,对象中共有的方法) 
  22. 8:说下栈区,堆区,方法区 
  23. 方法区:加载类的时候main()和,静态代码块,静态属性,静态方法直接加载 
  24. 堆区:存放实体(对象,数组元素),引用,成员变量(有默认的初始化值) 
  25. 栈区:引用,方法在调用时,形成了压栈,哪个方法压栈,就运行哪个方法(多线程具体实现细节稍有差异); 
  26. 局部变量(没有初始化值,可以定义以后赋值再使用,没有赋值前不能使用) 
  27. 9,学习了内部类(成员内部类,局部内部类,匿名内部类) 
  28. */ 
  29. //下面写一个类Person(父类),一个借口×××和一个继承类Student 
  30. //定义一类子类Student去继承Person类,然后去实现×××的接口 
  31. public class Student extends Person implements ××× { 
  32.      
  33.     private String major; 
  34. public Student(int age, String name, String sex,String major) { 
  35.         super(age, name, sex); 
  36.         this.major=major; 
  37.     } 
  38. public static void main(String[] args) { 
  39.     Student stu=new Student(21,"xiaohuang","male","computer"); 
  40.     play(); 
  41.     stu.sing(); 
  42.     stu.introduce(); 
  43.     } 
  44. public static void play(){ 
  45.     System.out.println("I can play tennis"); 
  46. //实现×××接口 
  47. public void sing(){ 
  48.     System.out.println("I like sing very much"); 
  49. //重写父类方法 
  50. public void introduce(){ 
  51.     System.out.println(getName()+","+getAge()+","+getSex()+","+major); 
  52.  
  53. //定义一个父类方法 
  54. class Person{ 
  55.     private int age; 
  56.     private String name; 
  57.     private String sex; 
  58.      Person() { 
  59.          
  60.     } 
  61.      Person(int age, String name, String sex) { 
  62.         this.age = age; 
  63.         this.name = name; 
  64.         this.sex = sex; 
  65.     } 
  66.     public int getAge() { 
  67.         return age; 
  68.     } 
  69.     public void setAge(int age) { 
  70.         this.age = age; 
  71.     } 
  72.     public String getName() { 
  73.         return name; 
  74.     } 
  75.     public void setName(String name) { 
  76.         this.name = name; 
  77.     } 
  78.     public String getSex() { 
  79.         return sex; 
  80.     } 
  81.     public void setSex(String sex) { 
  82.         this.sex = sex; 
  83.     } 
  84.      
  85.     public void introduce() 
  86.     { 
  87.         System.out.println("name"+name+"age"+age+"sex"+sex); 
  88.      
  89.     } 
  90. //定义一个借口,有一个抽象方法 
  91. interface ×××{ 
  92.     public abstract void sing(); 
  93.      
  94.  
    1. public class Inner { 
    2.  
    3.     public static void main(String[] args) { 
    4.          //定义一个匿名内部类去实现接口Smile 
    5.         Smile s=new Smile(){ 
    6.             public void smile(){ 
    7.                 System.out.println("let's smile happyly"); 
    8.             } 
    9.         }; 
    10.         s.smile(); 
    11.     } 
    12. interface Smile{ 
    13.     public abstract void smile(); 
    14.  
 
 
 
 ----------- android培训java培训、java学习型技术博客、期待与您交流! -----------