Java必备:类和对象

一、面向对象的特征 

  • Java支持面向对象的三大特征: 

    • 封装:Java提供了private ,protected和public三个访问控制修饰符来实现良好的封装; 

    • 继承:提供了extends关键字让子类继承父类,子类继承父类就可以继承到父类的Field和方法,如果访问控制允许,子类实例可以直接调用父类里定义的方法,这是实现一种复用的手段; 

    • 多态:继承实现复用时,子类对象可以直接复制给父类变量,这个变量具有多态性; 

 

  • 此继承之外,也可以通过组合来实现复用; 

 

二、类 

  • 引用变量:我们把类当成一种自定义数据类型,可以使用类来定义变量,这种变量统称引用变量; 

 

  • Java程序设计中有两个重要的概念: 

    • 类(Class):某一批对象的抽象,可以把类理解成某种概念; 

    • 对象(Object):对象才是一个具体存在的实体; 

     

  • 定义类语法: 

[修饰符] class 类名{ 

零到多个构造器定义... 

零到多个Field... 

零到多个方法... 

} 

  • 修饰符:可以是pubilc、final、abstract,或者完全省略; 

  • 类名:合法的标示符; 

  • Field:定义该类或该类的实例所包含的状态数据; 

  • 方法:定义该类或该类的实例的行为特征; 

  • 构造器:用于构造该类的实例; 

 

  • 定义Field语法: 

[修饰符] Field类型 Field名 [=默认值]; 

  • 修饰符:可以省略,也可以使public、protected、private、static、final,其中public、protected、private三个最多只能出现其中之一,可以与static、final组合起来修饰Field; 

  • Field类型:可以是Java设计语言的任何类型,包括基本类型和引用类型; 

  • Field名:一个合法的标示符; 

  • 默认值:指定一个默认值; 

 

  • 定义方法的语法格式如下: 

[修饰符] 方法返回值类型 方法名(形参列表){ 

//由零条到多条可执行语句组成的方法体 

} 

  • 修饰符:修饰符可以省略,可以是public、private、static、final、abstract,其中public、protected、private最多只能出现其中一个;abstract和final最多只能出现其中之一;可以与static组合起来修饰; 

  • 返回值:可以是Java语言支持的任何类型; 

  • 方法名:命名与Field的命名相同; 

  • 形参列表:定义该方法可以接受的参数,多个参数之间使用逗号(,)隔开; 

 

  • 构造器是一个特殊的方法,定义语法和方法相似,语法格式如下: 

[修饰符] 构造器名(形参列表){ 

//由零条到多条可执行语句组成的构造器执行体 

} 

  • 修饰符:可以省略,可以使public、protected、private之一; 

  • 构造器名:必须和类名相同; 

  • 形参列表:和定义方法形参格式完全相同; 

 

三、对象的产生和使用 

  • 创建对象的根本途径是构造器,通过new关键字来调用某个类的构造器即可创建这个类的实例; 

 

  • 类或实例访问方法或Field的语法:类.Field|方法,或者实例.Field|方法; 

  • static修饰的方法和Field,即可通过类来调用,也可以同通过实例来调用;没有static修饰的普通方法和Field,只能通过实例调用; 

 

四、对象、引用和指针 

  • 程序定义的Person类型的变量实际上是一个引用,它被放在栈内存中,指向实际的Person对象;真正的Person对象放在堆内存中; 

  • 实际上Java里面的引用就是C里地指针,只是Java语言把这个指针封装起来,避免开发者进行繁琐的指针操作; 

  • 堆内存中的对象可以有多个引用,即多个引用变量指向同一个对象; 

 

  • 如果堆内存里地对象没有任何变量指向该对象,那么程序将无法在访问该对象,这个对象也就变成了垃圾,Java的垃圾回收机制将回收该对象,释放该对象占用的内存; 

  • 如果希望通知垃圾回收机制回收某个对象,只需要切断该对象的所有引用变量和它之间的关联即可,也就是把这些应用变量赋值为null; 

 

五、对象的this引用 

  • Java提供了一个this关键字,this关键字总是指向调用该方法的对象。根据this关键字的位置的不同,this作为对象的默认应用有两种情形: 

    • 构造器中引用该构造器正在初始化的对象; 

    • 在方法中应用调用该方法的对象; 

     

  • this可以代表任何对象,当this出现在某个方法体中,它代表的对象是不确定的,但它的类型时确定的,它代表的对象只能是当前类;只有当这个方法被调用时,它代表的对象才能被确定下来,谁在调用这个方法,this就代表谁;

Java必备:类和对象

上一篇:leetcode Merge Sorted Array 2.19 难度系数2


下一篇:使用share SDK实现腾讯微博授权登录分享(1.x版本)