面向对象;类

----------面向对象

概述:java编程语言是纯粹的面向对象思想的语言。

 

现在程序开发有两个主流的方法:

(1)结构化程序设计,也叫面向过程程序设计

    结构化程序设计主张以功能/步骤来进行软件设计。

    如在解决问题时,主要是思考的是解决问题的步骤思路:

    围棋游戏:

    1.游戏开始,2,黑棋执行,3,绘制图片,4,判断输赢,

    5,白棋执行,6,绘制图片,7,判断输赢,8,返回2.

    9,游戏结束

  结构化程序设计是以函数为程序单元 ,从一个函数开始,调用其他

  普通函数,进行一些数据处理,一直调用下去。

   设计思想:自顶而下,逐步精分,模块化

    此种方式的编程语言有C,Basic,Pascal

    

  (2)面向对象程序设计。

      面向对象编程思想逐渐成熟起来。

      它使用类,对象,继承,封装,消息等概念来进行程序设计。

      主要从现实世界的客观事物(即对象)出发来进行开发软件系统,

      尽可能的运用人的自然思维方法 ,从客观事物来思考问题,

      认识问题。 从这些事物的本质特点,来抽象出系统所需要的类,

      作为程序的基本单元。

        围棋游戏:

           黑白棋子及其行为,棋盘, 输赢规则

           

     类是面向对象编程的基本单元,类含有一类事物的共同特征,

     类可以产生多个对象,这些对象构成了程序中所需要的数据。

     

     从图中我们可以看出,软件系统是由多个类组成的。

     类是一类事物的抽象体现,而这些事物都有一些状态数据。

     即Field ,如,人,有身高,体重,姓名,性别,爱好等(

      程序设计时,只关心业务所需要的数据)

 

   Field,我们称之为成员变量,有些资料称之字段,也有些资料

      称之为属性,java有property关键字 是属性的。

    

    类除了封装了一些事物的状态数据外,还提供了操作这些状态数据的

    方法(Method),实现逻辑。

    

    从上述内容可以总结出

            成员变量(状态数据)+方法(行为)定义=类的定义

  此类方法的编程语言:C++,java,C#, Ruby          

            

    完成一个“猪八戒吃西瓜”这样的逻辑

    

    面向过程: 函数吃 是核心

            吃(猪八戒,西瓜)

    面向对象: 一类事物的一个:猪八戒,吃是猪八戒的行为

                        一类事物的一个:西瓜

            猪八戒.吃(西瓜)

            

  组装电脑:  

            如果是主板,硬盘,内存条这样的大件,容易组装

      ---面向对象      

            

            如果是二极管,三极管,电路板这样的小件进行组装,

            很难 ---面向过程   

       

 面向对象要比面向过程的粒度要大,相对来说容易,简单。

 面向过程要比面向对象的性能要高,因为面向对象要进行对象的实例化,

 比较吃内存,吃性能。  

 

抽象数据类型:用一堆不同类型的状态数据来描述的一种新的事物。

          

   reg:  描述电脑,

                         颜色,     尺寸,  型号,      主板,              内存,    硬盘,显卡                         

           0xFF00FF  15.6  thinkpadT460  华硕      三星       希捷 , inter

            0xFF00FF  15.6  lenovoE40    三星      三星       西数 , inter

    

    这些事物的共同行为:

            办公

            playGame

            play

            

     用状态数据(成员变量)总结一类事物的共同特征

     用方法总结一类事物的共同行为。

类的定义:   =成员变量+方法

 

    格式语法:

      修饰词  class  类名{

      type  field1;

      type  field2;

      .....

      

            修饰词 返回值类型  method1(形参){}

            修饰词 返回值类型  method2(形参){}

      .....     

   }

 

   对象:类的实例化,即类中的个体        

            如何创建对象:使用关键字new

         类名  引用变量  = new 类名();

         

  引用变量,简称引用,存储的是对象的地址信息   

  

 成员变量的调用:

         引用.成员变量名

 方法的调用:

         引用.方法名(有参传参)    

         

 类与对象的关系:

             类是对象的模板,对象是类的实例化

             

 内存管理机制:

  jvm将其管理的内存分成三大主要区域:方法区,堆,栈

  方法区:当程序运行时,将所需要的class文件(类的信息)加载到此区间

  堆: 用于存储引用类型所产生的对象,如果对象有成员变量,会给成员变量分配空间

     栈:方法内的变量(局部变量)是在栈中开辟的

 

 基本类型的变量与引用类型的变量:

 

   值传递:

       基本数据类型的变量里存储的是基本类型的数据

       int a = 5;

       int b = a;//将a里的5复制了一份,传递给了b

   

   址传递:

       引用类型的变量里存储的是对象的地址信息

       Car c = new Car();

       Car d = c;//将c里的地址信息复制了一份,传递给了d

 

空指针异常:

   java.lang.NullPointerException

   在程序运行时,可能会出现此异常,出现的原因:

   Car  c = new Car();

   System.out.println(c.color);//0

   Car c = null;

   System.out.println(c.color);//就会出现空指针异常

 

猜你喜欢

转载自blog.csdn.net/K_KingoneTen/article/details/81275016