类与对象

一、抽象数据类型
    用一堆不同类型的数据来描述的一个事务。
二、类
    1.类与对象的关系
      什么是类?
       我们把有共同特征和共同行为的事务归纳为一种类型。同时
      用各种类型的变量来描述特征,共同的行为用方法来描述。
      类是抽象的,是没有具体实例的,只是一种对象的模板,
      什么是对象?
       类的实例化,具体个体。
   2.面向对象编程--面向过程编程 
      在程序中使用的数据,比如具体一个人的姓名,年龄,性别,
          行为等,分散着使用,没有逻辑性,比较杂乱。把这些要
      使用的数据封装到一个类型的对象上,我们想使用数
      据,直接使用对象即可。
  3.类的定义和对象的创建
    public class 类名{
      属性--共同特征
      方法--共同行为
    }
    类名 变量 = new 构造方法();

   4.引用类型变量(与八大基本数据类型的变量)
    引用类型变量里存的是对象的地址信息
    变量之间的赋值是址传递
    八大基本数据类型存的是值。
    变量之间的赋值是值传递

  5.jvm的内存管理机制
    三大主区
      方法区:负责加载类的信息(.class文件)
      堆:java对象是在堆中分配内存,类中成员变量在堆中分配内存空间,

       这些内存空间称做该对象的实体或对象的变量。

      栈:对象的引用是在栈中分配内存
      这个空间叫栈帧,当方法执行完毕,栈帧消失,
      空间得到释放。

   


 
  6.方法的定义
    修饰词 返回值类型 方法名(形参){
    方法体
    }
  7.方法的重载:
    在一个类中,方法名相同,参数的类型列表不同(类型从左到右的顺序)
    不需要考虑返回值和修饰词
      public void sum(int a){}
        方法签名:sum int
      protected int sum(int b,int b){}
        方法签名:sum int int
  8.构造方法,是特殊的方法,没有返回值这个位置,方法名和类名相同
    作用:给对象的属性初始化,对象的实例化是调用new关键字来完成的
    new 构造方法;
    能否重载:能
    系统给类默认提供一个无参构造方法,如果手动提供后,系统
    就不在提供了。
  9.关键字this
    this在方法定义期间是没有意义的,规定模板,确定逻辑结构,
    当程序运行起来后,this是指向对象的。

    public Person(String name){
      this.name = name;
    }
  另外一种用法:this(有参传参),只能在某一个构造方法中使用,并且
    只能放在首行首句,表示调用本类中其他的构造器
    public Person(int a){
      this.a = a;
    }
    public Person(int a,int b){
      this(a);
      this.b = b;
    }

  10. null和NullPointException
    null:引用类型的默认值,
    String a = null;---说明空间a里面没有地址信息,
      int length = a.length();--相当于null.length();
    如果有这样类似的代码,就会出现空指针异常(程序运行时,会报)

 

posted @ 2018-04-03 20:14  小鹿笔记  阅读(82)  评论(0编辑  收藏  举报