java基础学习——对象和类

对象和类

首先说一下结构化程序的缺陷:
(1)缺乏对数据的封装
(2)数据和方法的分开

抽象数据类型:将不同类型的数据的集合组成一个整体来描述一个新的事物

一,什么是类?
1.现实世界中是由对象组成的,基于这些对象,抽出了类。
2.类:类型,类别,代表一类个体,对象:独立的个体
3.类是一种数据类型(引用类型)。
4.类中可以包括:
                          (1)所有对象所共有的属性——变量
                          (2)所有对象所共有的方法——方法
5.一个类可以创建多个对象,同一个类创建的对象,结构相同,数据不同。
6.类是对象的模板,对象是类的实例。

二,定义类的成员变量
1.类的定义包括”成员变量“的定义和”方法“的定义,其中成员变量用于描述改类型对象共同的数据结构。
2.java语言中,类的成员变量的定义可以使用如下语法:
                                           class  类名  {
                                               成员变量类型  变量名称;
                                               }
3.对象创建后,其成员可以按照默认的方式初始化。
4.初始化对象成员变量时,器默认值的规则如下所示:

                                                            成员变量类型                                        默认初始值
                                       数值类型(byte,short,int,long,double,float)                       0
                                                               boolean                                               false
                                                               char型                                                 /u0000
                                                               引用类型                                                null

三,定义类的方法
1.类的方法:用于描述对象的行为,封装对象的功能。
2.java语言中可以按下列方式定义类的方法
                                                         class 类名 {
                                                    修饰词  返回值类型   方法名称(参数列表)  {
                                                               方法体 ;  
                                                                               }
                                                                     }

四,使用new关键字创建对象
1.类定义完成后,可以使用new关键字创建对象,创建对象的过程成为实例化。
2.new运算的语法为: new  类名();
3.引用类型变量:为了能够对实例化的对象进行访问控制,需要使用一个特殊的变量——引用
      (1)引用类型变量可以存放该类对象的地址信息,通常称为”指向该类的对象“;当一个引用类型变量指向该类的对象时,就可以通过这个变量对对象实施访问。
      (2)除8种基本类型外,用类,接口,数组等声明的变量都称之为引用类型的变量,简称”引用“;

五,引用类型变量的赋值
1.引用类型变量存储的是对象的地址信息,相同类型的引用变量之间也可以相互赋值。
2.引用类型变量之间的赋值不会创建新的对象,但有可能会使两个以上的引用指向同一个对象。
                                                               Cell  c  =  new  Cell();
                                                                 类  引用            对象
                                                                   class   Cell{
                                                                    int   row;
                                                                   int    col;
                                                                          }
                                                                  Emp  el = new  Emp();
                                                                  Emp e2 = e1;    //将e1的值(对象的地址信息)赋给e2,e2和e1指向相同的对象

六,null和nullPointerException
1.对于引用类型变量,可以对其赋值为null,null的含义为”空“,表示指向任何对象。
                                   例,Emp   emp = null;     //引用emp中的值为null,没有指向任何对象
                                              emp  = new  emp();     //  用emp指向Emp对象。
2.当一个引用的值为null的时候,如果通过引用访问对象或成员变量或者调用方法是不合逻辑的,此时会产生nullPointerException
                                                                例:Jframe  frame = null ; 
                                                                         frame.setSize(200,300);
                 "空"代表不再指向任何对象。

七,方法的前面与重载
1.方法的签名包含两个方面,方法名和参数列表。
2. 一个类中,不可以有两个方法的签名完全相同,哪一个类中不可以有两个方法的名字和参数列表完全一样
3 .如果一个类的两个方法只是方法名相同而参数列表不同,即为重载,是可以的。
4.在java语言中,允许多个方法的名称相同,但参数列表不同,称之为方法的重载。
5 .编译器在编译时会根据签名来绑定调用不同的方法,我们可以把重载的方法看成是完全不同的方法,只不过方法名相同而已。
6.Java中重载时,方法名相同,只能为参数类型不同,与返回值,参数名无关。

八.构造方法。
1.常常用于给成员变量赋初值。
2.与类名相同,没有返回值,也 不能写void
3.在创建对象时被自动调用。
4. 若自己不写构造方法,则编译器默认提供一个无参构造方法,若自己写了构造方法,则编译器不再默认提供无参构造方法。
5.构造方法可以重载
          语法:
                                         【访问修饰符】  类名(){
                                                                      //  构造方法体
                                                             }

九,this的用法。
1.this指代当前对象,那个对象调用就是那个对象。
2.在方法中访问成员变量,默认有个this,在没有歧义情况下可以省略this。
3. this.成员变量名——访问成员变量                     this.方法名——调用方法                  this.()——调用构造方法
4.成员变量和局部变量可以相同。
5.在构造方法中,用来初始化成员变量的参数一般和成员变量去相同的名字,这样有利于代码的可读性,但此处就必须通过this关键字来区分成员变量和参数(不能省略this)
               例:                        
                                                public  Cell(int row,int col) {
                                                          this.row = row ; 
                                                          this.col = col ;
                                                          }

十.数组的引用
1.在java中,数组属于引用数据类型。
2.数组对象在堆中存储,数组属于引用类型,存储数组对象的地址信息,指向数组信息。
3.数组的元素可以看成数组对象的成员变量(只不过类型全部相同)
                         int [] arr = new int [2] ;    
                                     栈                        堆
                                                                int [] 
                                   arr[0]                       0
             arr 0×50       arr[1]                       1
                                   arr[2]                        2
4.引用类型数组的声明,数组的元素可以是任何类型,当然也可以包括引用类型
5.引用类型数组的初始化
       (1)引用类型数组的默认值为null
       (2)如果希望每一个都指向具体的对象,需要针对每一个数组元素进行”new“运算。
6.数组的类型是基本类型数组。
        (1)数组的元素可以为任何类型,也包括数组类型。
              例:  int [][] arr = mew int [2][2];       arr  [0] = new int [2];      arr [1] = new int[3];
              解释:arr指向一个数组,该数组有2个元素,每个元素都是int类型数组,长度分别为 2,3。
        (2)当元素为数组的数组,且每个元素的长度相同时,在其他语言有专门的这种结果成为二维数组, 但严格来说在java语言中没有正真的二维数组
                                             例:
                                                               int [] [] arr = new [2][2];
                                                               for(int i=0;i<arr.length;i++){
                                                                         for(int j=0;j<arr[i].length;j++){
                                                                                  arr[i][j] = 0;
                                                                       }
                                                                 }

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值