步步扎进Java-面向对象

   面向对象的三条主线:

  

  1.类及类的成分
  2.面向对象的三大特性
  3.其他的关键字:this super import package abstract static final interface等

           
     1.java程序是关注于类的设计。类从代码的角度:并列关系!   从执行、设计的角度:关联关系、继承关系、聚合关系
   class A{


           }


   class B{
      A  a = new A();
    }


   2.类的成分:属性   方法  构造器  代码块  内部类

     

     2.1 属性: 

     ①变量的分类:成员变量(属性 Field)vs局部变量(方法的形参、方法内部、代码块内部)基本数据类型(8种,不同的数据类型对应不同的默认初始化值)vs引用数据类型(数组、类、接口 默认初始化值为null)

     ②属性的声明格式:修饰符  数据类型  变量名 = 初始化值;//java是强数据类型的语言
     ③对属性的赋值的操作:1.默认初始化 2.显式的初始化  3.代码块的初始化  4.构造器的初始化;5.调用方法、属性进行赋值

        

     2.2 方法   

     ①格式:修饰符 (其它的关键字:static/final/abstract)返回值类型 方法名(形参列表){ //方法体 }

     ②方法的重载(overload)   vs  方法的重写(override overwrite)
     ③ 方法的参数传递机制:值传递(难点)

    

     2.3构造器   

     ①构造器的作用:

      1.创建类的对象 

      2.初始化对象的成员变量

     ②构造器也是可以重载的。

       

     2.4 代码块   

      主要作用:用来初始化类的成员变量

      分类:静态的代码块  vs  非静态的代码块

       

     2.5 内部类   

      ①分类:成员内部类(static的成员  vs  非static的成员)  vs 局部内部类(方法内部声明的类)

      ②掌握 :

       ①如何创建成员内部类的对象(如:创建Bird类和Dog类的对象)

       ②如何区分调用外部类、内部类的变量(尤其是变量重名时)
       ③局部内部类的使用 (见TestInnerClass1.java)

   

   3. 类的初始化(创建类的对象)

       3.1 如何创建类的对象。

        如: Person p = new Person();  Date d = new Date();

       3.2 内存解析:

           ①栈:局部变量、对象的引用名、数组的引用名
              堆:new 出来的“东西”
              方法区:(字符串常量池)
              静态域:存放类中静态的变量
           ②如何理解创建的对象在内存中加载的过程(理解)

      

       3.3 子类对象实例化的全过程: SubClass sc = new SubClass();

 

   4.面向对象的三大特性:

       4.1 封装性:
       ① 通过私有化类的成员变量,通过公共的getter和setter方法来调用和修改
       ② 还可以对类的其他结构进行“封装”
       ③ 权限修饰符:public protected 缺省 private

      

       4.2 继承性:

       通过让一个类A继承另一个类B,就可以获取类B中的结构(主要的:属性、方法、构造器)。

       子类:类A  父类:类B

         >java中的类的继承性:单继承的。

     

       4.3 多态性:

          ①体现:方法的重载与重写  ; 子类对象的多态性  Person p = new Student();
          ②子类对象多态性的使用:虚拟方法调用。

          ③向上转型  向下转型 Student s = (Student)p; 

          //建议在向下转型之前: if ( p instanceof Student)避免出现ClassCastException的异常


   5.其它关键字:
     5.1 this:修饰属性、方法、构造器  。表示:当前对象或当前正在创建的对象
     5.2 super:修饰属性、方法、构造器。显式的调用父类的相应的结构,尤其是子父类有重名的方法、属性
     5.3 static :  修饰属性、方法、代码块、内部类。随着类的加载而加载!
     5.4 final:修饰类、属性、方法。表示“最终的”
     5.5 abstract : 修饰类、方法
     5.6  interface:表示是一个接口,(接口是与类并列的一个结构)。类与接口之间同时“implements”发生关系。
     5.7 package import 。。。
     >abstract不能修饰属性、构造器、不能与final static private共用。
评论 13
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值