【JAVA核心技术卷一】Object Oriented面向对象

来源:互联网 发布:java窗口程序 编辑:程序博客网 时间:2024/06/05 17:04

Object Oriented 面向对象

面向对象

  • 类 class
  • 封装 encapsulation
  • 继承 inheritance

面向对象的主要特性:

  • 对象的标识(identity)
  • 对象的状态(state)
  • 对象的行为(behavior)

类之间的关系:

  • 依赖 dependence(uses-a)
  • 聚合 aggreation(has-a)
  • 继承 inheritance(is-a)

隐式参数和显式参数

  Test.setNumber(25);  
  • 其中Test为隐式(implicit)参数,25为显式(explicit)参数

    显式参数是明显地列在方法声明中,隐式参数没有出现在方法声明中

  • 在每一个方法中,可以用关键字this表示隐式参数。

    这样可以将实例域和局部变量区分开

final实例域

  • final修饰符大都应用于基本(primitive)类型域,或不可变(immutable)类的域(如果类中的每个方法都不会改变其对象,这个类就是一个不可变类。例如String类)

  • 对于可变类

     private final Date hireDate; 

    仅仅意味着储存在hireDate变量中的对象引用在对象构造之后不能被改变,并不意味着hireDate是一个常量。任何方法都可以对hireDate引用的对象调用setTime更改器。

static 静态

  • 被赋予static属性的变量/方法,属于类级别的变量/方法,即该变量/方法在整个类中共享。即属于类且不属于类对象的变量和函数。

  • 当通过对象修改static变量时,所以这个类下的对象中的static变量都被修改。

  • static的方法中只能存在static变量

    class {   static{      //该方法在创建类的时候构成      }  }
  • 静态方法是一种不能向对象实施操作的方法,没有隐式的参数

    Math.pow(x,a);  

    因为静态方法不能操作对象,所以不能在静态方法中访问实例域。但是,静态方法可以访问自身类中的静态域

    下面两种情况下使用静态方法:

    • 一个方法不需要访问对象状态,其所需参数都是通过显式参数提供.

    例如:

    Math.pow(); 
    • 一个方法只需要访问类的静态域

Main方法

  • Main方法是一个静态方法。其不对任何对象进行操作。每一个类可以有一个main方法

Tips:

可以在Employee类中添加一个main

如果想要独立测试Employee方法,只需要执行

    java Empolyee

如果雇员类是一个更大型程序中的一部分,就可以使用下面这条语句运行程序

    java Application

并且Employee类中的main方法永远不会执行

方法参数

  • 一个方法不能修改一个基本数据类型的参数,而对象引用参数则可以。
  • 一个方法不能让对象参数引用一个新的对象
  • 对于java来说,对对象采用的不是引用调用而是值传递

对象构造

重载Overload

通过用各个方法给出的参数类型与特定方法调用所使用的值类型进行匹配来挑选出相应的方法Java允许重载任何方法

权限

  • public

    作用于变量/方法/类。在任何地方都可以调用。

  • (default)

    默认权限。作用于变量/方法/类。仅此包中可以调用。

  • protected

    作用于变量/方法。仅此包中和其子类中可以调用。

  • private

    作用于变量/方法/类。仅可以在此类中调用。

0 0
原创粉丝点击