面向对象1

对于事物的描述通常只关注2个方面

一个是属性,一个是行为

只要明确该事物的属性和行为并定义在类中即可

对象 :其实就是该类事物实实在在存在的个体

类与对象之间的关系

类:事物的描述

对象 :该类事物的实例 。在java中通过new来创建的

描述小汽车

分析

  1、属性

        轮胎数

        颜色

   2、行为    

        运行

定义类其实就是在定义类中的成员

成员:

    

   成员变量(定义在类中)-----------属性

   成员函数 -----------行为

局部变量 :作用域 : 方法中,语句中

      //在计算机中创建一个Car的实例 ;通过new关键字

//c 就是一个类类型的引用变量 ,指向了该类对象

 Car c = new Car();

 c.num = 5;

 c.color = "bule";

 c.show();

一旦产生一个对象,该对象一定就具备着该类所具备的内容

对象封装的是一个事物当中所具备的特有数据(与同类对象的区别)

对象封装的是数据,而不是封装对象的属性(属性与数据的区别,数据是对属性的赋值)

成员变量和局部变量的区别

  1、成员变量

        定义在类中,整个类中都有效

        存在于堆内存的对象中

        成员变量随着对象的创建而存在,随着对象的消失而消失

         都有默认初始化值

     

  2、局部变量

        定义在函数、语句、局部代码块中,只在所属的区域有效

        存在于栈内存的方法中

        随着所属区域的执行而存在,随着所属区域的结束而释放

        没有初始化值,必须要赋值

误区理解 :

         成员变量  num :是说汽车这类事物,应该具备num的这个属性

         而c.num 是对该类的一个对象(实例)  对对象自身的num属性进行赋值

         是对  对象中的属性进行赋值

  

成员变量和局部变量同名:

  自己所属的区域(栈)有,就不用出去找(堆)

对成员变量赋值就是显示初始化

   数据类型 变量名  

   C : 类类型变量肯定指向的是对象,不然就为null

   

Public static void show(Car  c)    类类型变量只能接收的是对象(实例)

{

}

匿名对象

new Car( ).run( );

1、当对象对方法仅进行一次调用的时候,就可以简化为匿名对象

2、匿名对象可以作为实际参数进行传递  show(new Car( ) );

     肯定会有一个类类型的引用变量来接收这个匿名对象

      public   static void show( Car c )

封装  

    封装 : 是指隐藏对象的属性和实现细节 ,仅对外提供公共的访问方式

好处

   

1、将变化隔离

2、便于使用

3、提高重用性

4、提高安全性

封装的原则

  1、将不需要对外提供的内容都隐藏起来

  2、把属性都隐藏,提供公共方法对其访问

一旦有属性  几乎都隐藏 , 对外提供公共的访问方法

对外提供方法的目的是  对属性进行可控

private 私有 :是一个权限修饰符 ,用于修饰成员 ,(修饰不了局部)

              私有的内容 只在本类中有效

      常用

        将成员变量私有化,对外提供对应的set  get方法

        对方法进行访问。提高对数据访问的安全性

        用方法的目的是对数据进行可控(方法体内可以对数据进行判断)

注意 :私有仅仅是封装的一种体现而已

        笔记本 、手机 就是一个封装体

       

 java中最小的封装体就是函数

          类也是封装体

          框架也是封装体

构造函数

   特点

    1、函数名与类名相同

    2、不用定义返回值类型

    3、没有具体的返回值

 

   作用

      给对象进行初始化

 

  注意

    1、默认构造函数的特点

    2、多个构造函数是以重载的形式存在的

 

构造函数在对象一创建的时候就运行了 ,用于给对象进行初始化

 

构造函数: 构建创造对象的时候就会立刻 调用的函数  ,作用 :是个创建的对象进行初始化

  

创建的对象都必须要通过构造函数初始化 ,对象不初始化绝对不能用

函数是封装体,相同的函数名及参数列表,就是相同的函数,不关心函数体是否相同

   

一个类中如果没有定义过构造函数,那么该类中会有一个默认的空参数的构造函数

如果在类定义了指定的构造函数,那么类中的默认构造函数就没有了

构造函数和一般函数的区别

 构造函数

    对象一旦创建,就会立刻调用与之相对应的构造函数,对  对象进行初始化

    对象创建时,会调用,只调用一次

   

 一般函数

    对象创建后,需要该函数功能时才调用

    对象创建后,可以被调用多次

原文地址:https://www.cnblogs.com/weilin/p/5327482.html