作者:轩风羽_609 | 来源:互联网 | 2024-09-25 18:19
一、什么是面向对象,什么是面向过
 
 
 二、引入对象和类的概念
对象:是具体事物 如:小明 汽车
类: 是对对象的抽象(抽象 抽出象的部分) Person
先有具体的对象,然后抽象各个对象之间的部分,归纳出类通过类再认识其他对象
生活案例
类是一个图纸 对象是根据该图纸制造多个实物
类是一个模具 对象是使用模具制造的多个铸件(月饼模子 )
类是上海大众汽车,对象就是大家购买的一辆辆具体上海大众汽车
 
三、 认识类和对象
? 需求:使用面向对象思想表示人的日常生活
? 分析
? 由多个具体的人(小红、小张、老李)抽象出所有的公共特征
? 静态特征:姓名、年龄、性别
? 动态行为:吃饭、休息、自我介绍
? 实现
? 创建抽象的人-----Person类
? 创建具体的人-----对象
四、类和对象的总结
? 对象和类的关系:
? 特殊到一般,具体到抽象。
? 类可以看成一类对象的模板,对象可以看成该类的一个具体实例。
? 类是用于描述同一类形的对象的一个抽象的概念,类中定义了这一类对象所应具有的静态和动
态属性
? 怎么定义类(类的组成)
? 属性 field
? 方法 method
? 构造方法 construtor
? 其他:代码块 静态代码块 内部类
? 属性定义格式:
? [修饰符] 属性类型 属性名 = [默认值]
? 怎么创建对象
? 类名 对象名 = new 类名();
? Person p1=new Person();
? 调用类的属性和方法
? 对象名.成员变量
? 对象名.成员方法
五、 局部变量和成员变量
    成员变量:
          1、成员变量定义在类中,在整个类中都可以被访问。
          2、成员变量随着对象的建立而建立,随着对象的消失而消失,存在于对象所在的堆内存中。
          3、成员变量有默认初始化值。
      局部变量:
          1、局部变量只定义在局部范围内,如:函数内,语句内等,只在所属的区域有效。
          2、局部变量存在于栈内存中,作用的范围结束,变量空间会自动释放。
          3、局部变量没有默认初始化值 
      在使用变量时需要遵循的原则为:就近原则
      首先在局部范围找,有就使用;接着在成员位置找。
 
六、成员变量和类变量的区别:
   1、两个变量的生命周期不同
      成员变量随着对象的创建而存在,随着对象的回收而释放。
      静态变量随着类的加载而存在,随着类的消失而消失。
   2、调用方式不同
      成员变量只能被对象调用。
      静态变量可以被对象调用,还可以被类名调用。
   3、别名不同
      成员变量也称为实例变量。
      静态变量也称为类变量。
   4、数据存储位置不同
      成员变量存储在堆内存的对象中,所以也叫对象的特有数据。
      静态变量数据存储在方法区(共享数据区)的静态区,所以也叫对象的共享数据。
 
七、this关键字
? this的作用:
? this表示的是当前对象本身,
? 更准确地说,this代表当前对象的一个引用。
? 普通方法中使用this。
? 区分类成员属性和方法的形参.
? 调用当前对象的其他方法(可以省略)
? 位置:任意
? 构造方法中使用this。
? 使用this来调用其它构造方法
? 位置:必须是第一条语句
? this不能用于static方法。
 
八、static关键字
? 在类中,用static声明的成员变量为静态成员变量 ,或者叫做: 类属性,类变量.
? 它为该类的公用变量,属于类,被该类的所有实例共享,在类被载入时被显式初始化,
? 对于该类的所有对象来说,static成员变量只有一份。被该类的所有对象共享!!
? 可以使用”对象.类属性”来调用。不过,一般都是用“类名.类属性”
? static变量置于方法区中!
? 用static声明的方法为静态方法
? 不需要对象,就可以调用(类名.方法名)
? 在调用该方法时,不会将对象的引用传递给它,所以在static方法中不可访问非static的成员。
? 静态方法不能以任何方式引用this和super关键字