JAVA的对象和封装及static与final的用法(详解)

一:软件出现的目的编程

     1:用计算机的语言描述现实世界this

     2:用计算机解决现实世界的问题编码

编程思惟:  使用面向对象的思想(描述)面向对象的世界     (符合人类的思惟习惯)spa

二:面向对象设计和开发程序的好处设计

    1:符合人类的思惟习惯code

    2:交流更加流畅对象

    2:可维护性高(方便修改代码)blog

    3: 提升设计和开发效率继承

三:面向对象的三大特性接口

      1封装性:
           所谓封装,也就是把客观事物封装成抽象的类,而且类能够把本身的数据和方法只让可信的类或者对象操做,对不可信的进行信息隐藏。封装是面向对象的特征之一,是对象和类概念的主要特性。 简单的说,一个类就是一个封装了数据以及操做这些数据的代码的逻辑实体。在一个对象内部,某些代码或某些数据能够是私有的,不能被外界访问。经过这种方式,对象对内部数据提供了不一样级别的保护,以防止程序中无关的部分意外的改变或错误的使用了对象的私有部分。
    2继承性
          所谓继承是指可让某个类型的对象得到另外一个类型的对象的属性的方法。它支持按级分类的概念。继承是指这样一种能力:它可使用现有类的全部功能,并在无需从新编写原来的类的状况下对这些功能进行扩展。 经过继承建立的新类称为“子类”或“派生类”,被继承的类称为“基类”、“父类”或“超类”。继承的过程,就是从通常到特殊的过程。要实现继承,能够经过“继承”(Inheritance)和“组合”(Composition)来实现。继承概念的实现方式有二类:实现继承与接口继承。实现继承是指直接使用基类的属性和方法而无需额外编码的能力;接口继承是指仅使用属性和方法的名称、可是子类必须提供实现的能力;
    3多态性
          所谓多态就是指一个类实例的相同方法在不一样情形有不一样表现形式。多态机制使具备不一样内部结构的对象能够共享相同的外部接口。这意味着,虽然针对不一样对象的具体操做不一样,但经过一个公共的类,它们(那些操做)能够经过相同的方式予以调用。

四:从现实中抽象出类分三步:

  1. 找出它的种类     2. 找出它的属性     3. 找出它的行为

在编程中的应用:

   1:找出名词肯定类、属性    eg: (肯定类) class Dog{}       (肯定属性)String name="小黑"; String Strain="拉布拉多"

   2:找出动词肯定方法           eg:(进食方法)   public void eat (){ //省略代码 }  

   3:剔除与业务无关的属性和方法  

五:实现封装的步骤

   1画类图:  

      类图的做用:1:用于分析和设计“类”

                            2:直观,容易理解

  2:封装的概念:

      封装:将类的某些信息隐藏在类内部,不容许外部程序直接访问,而是经过该类提供的方法来实现对隐藏信息的操做和访问 

  3编写代码实现封装

       1:修改属性的可见性                                        (设为private)

       2:建立公有的getter/setter方法                          (用于属性的读写)

       3:在getter/setter方法中加入属性控制语句      (对属性值的合法性进行判断)

【代码示例】

 1 public class Dog {
 2     private String name;//昵称
 3     private int health;//健康值
 4     private int love;//亲密度
 5     private String strain;//品种
 6 
 7     public Dog() {
 8     }
 9 
10     public String getName(){
11         return name;
12     }
13     public void setName(String name){
14         this.name=name;
15     }
16     public int getHealth(){
17         return health;
18     }
19     public  void setHealth(int health){
20         if(health>100||health<0){
21             this.health=40;
22             System.out.println("健康值应该在0到100之间,默认值是40");
23         }else{
24             this.health=health;
25         }
26     }
27     public int getLove(){
28         return love;
29     }
30     public void setLove(int love){
31         this.love=love;
32     }
33     public String getStrain(){
34         return strain;
35     }
36     public void setStrain(String strain){
37         this.strain=strain;
38     }
39     public void print(){
40         System.out.println("宠物的自白");
41         System.out.println("个人名字叫"+name+",健康值是"+health+",和主人的亲密度是"+love+",我是一只"+strain);
42     }
44 }

   4:封装的好处:

         (1):隐藏类的实现细节

         (2):只能经过规定方法访问数据

         (3):方便加入控制语句

           (4):方便修改实现 

  六:访问成员变量及方法

     1:static的做用:

              (1)static 能够用来修饰属性,方法和代码块,称为静态变量,静态方法和静态代码块

              (2)由static 修饰的属性和方法,能够直接经过类名.属性 或 类名.方法来进行调用

              (3)由static 修饰的代码块,在运行时,程序默认自动调用,且优先于构造方法和普通方法;若类中有多个代码块,则按照静态代码块顺序依次执行

     2:final的做用:

               (1)final 可修饰类,属性,和方法

               (2)当final 修饰一个类时,该类成为最终类,没法被继承。简称为“断子绝孙类”。

               (3)当使用final修饰方法时,这个方法将成为最终方法,没法被子类重写。可是,该方法仍然能够被继承。

               (4)当final修饰属性(变量)时,则该属性为常量,其固定值不变,该值没法修改

      【示例】

相关文章
相关标签/搜索