黑马程序员技术交流社区

标题: 面向对象基础完了,小小的总结,欢迎指错!谢谢! [打印本页]

作者: 黑马黄文龙    时间: 2012-12-9 22:00
标题: 面向对象基础完了,小小的总结,欢迎指错!谢谢!
  1. /*
  2. 需求:面向对象的基础基本学完了,也该做下总结了
  3. 分析:
  4. 1,分别从面向对象的各种概念,组成来分析
  5. 2,从类,对象,封装,继承,多态来解释面向对象
  6. 3,类中的属性,方法,构造函数,静态方法,静态代码块等,

  7. 1,面向对象:把功能封装起来形成对象,让这个对象帮我们完成我们需要的功能
  8. 主要是区别与面向过程,面向过程是把问题一直最小细分化,而面向对象是形成
  9. 不同的功能对象,从劳动者变成指挥者。
  10. 2,java是一种编译型语言,跨平台语言,具有封装,继承,多态等特性
  11. 3,类:是创建对象的图纸,抽象性,有属性,方法;对象:根据类形成具体的实体,
  12. 根据类创建的对象具有具体的属性和具体的方法。
  13. 4,封装:把功能封装起来,便于使用和维护。特别从私有属性,方法,内部类可以看出封装的好处
  14. 5,继承:可以提高代码的重用性,也为多态的实现提供了前提条件。
  15. 6,多态:多种形态可以共存,主要是丰富了我们的引用,特别从接口可以看出,我们可以先不用去实现
  16. 怎么实现这个功能,可以先定义这个功能,等实现类去具体完成,但是我们可以用接口的引用去指向实现类
  17. 的实体,就是形参我们可以用父类或者接口的引用。
  18. 7,类:包括属性(可以用名字抽取法),方法(实现一些功能,动词抽取法),每个类一般都包括属性,
  19. 方法,构造函数(用来初始化对象),静态属性(一些对象共有的属性,存在方法区中,随着类的加载而加载),
  20. 静态方法(随着类的加载而加载,对象中共有的方法)
  21. 8:说下栈区,堆区,方法区
  22. 方法区:加载类的时候main()和,静态代码块,静态属性,静态方法直接加载
  23. 堆区:存放实体(对象,数组元素),引用,成员变量(有默认的初始化值)
  24. 栈区:引用,方法在调用时,形成了压栈,哪个方法压栈,就运行哪个方法(多线程具体实现细节稍有差异);
  25. 局部变量(没有初始化值,可以定义以后赋值再使用,没有赋值前不能使用)
  26. 9,学习了内部类(成员内部类,局部内部类,匿名内部类)
  27. */
  28. //下面写一个类Person(父类),一个借口KTV和一个继承类Student
  29. //定义一类子类Student去继承Person类,然后去实现KTV的接口
  30. public class Student extends Person implements KTV {
  31.        
  32.         private String major;
  33. public Student(int age, String name, String sex,String major) {
  34.                 super(age, name, sex);
  35.                 this.major=major;
  36.         }
  37. public static void main(String[] args) {
  38.         Student stu=new Student(21,"xiaohuang","male","computer");
  39.         play();
  40.         stu.sing();
  41.         stu.introduce();
  42.         }
  43. public static void play(){
  44.         System.out.println("I can play tennis");
  45. }
  46. //实现KTV接口
  47. public void sing(){
  48.         System.out.println("I like sing very much");
  49. }
  50. //重写父类方法
  51. public void introduce(){
  52.         System.out.println(getName()+","+getAge()+","+getSex()+","+major);

  53. }
  54. }
  55. //定义一个父类方法
  56. class Person{
  57.         private int age;
  58.         private String name;
  59.         private String sex;
  60.          Person() {
  61.                
  62.         }
  63.          Person(int age, String name, String sex) {
  64.                 this.age = age;
  65.                 this.name = name;
  66.                 this.sex = sex;
  67.         }
  68.         public int getAge() {
  69.                 return age;
  70.         }
  71.         public void setAge(int age) {
  72.                 this.age = age;
  73.         }
  74.         public String getName() {
  75.                 return name;
  76.         }
  77.         public void setName(String name) {
  78.                 this.name = name;
  79.         }
  80.         public String getSex() {
  81.                 return sex;
  82.         }
  83.         public void setSex(String sex) {
  84.                 this.sex = sex;
  85.         }
  86.        
  87.         public void introduce()
  88.         {
  89.                 System.out.println("name"+name+"age"+age+"sex"+sex);
  90.        
  91.         }
  92. }
  93. //定义一个借口,有一个抽象方法
  94. interface KTV{
  95.         public abstract void sing();
  96.        
  97. }
复制代码





欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2