JavaAoop小节知识点(1)

什么是对象?

1 面向过程编程和面向对象编程
    1) 面向过程编程, 实现某个功能时,使用函数之间相互调用完成的。函数之间的关联性很强。
            当功能发生改变时,需要重写新编写函数。
    2) 面向对象编程,实现某个功能时,把实现的方式拟人化,通过调用各个对象的功能来实现要求。

    盖房子:
        打地基
        砌墙
        盖房顶
    1 过程
        定义方法:  打四方形地基的方法
                   砌四方形墙的方法
                  盖四方形的房顶的方法
            盖房子的方法(){  //四方法的房子。
                打四方形地基的方法
                   砌四方形墙的方法
                  盖四方形的房顶的方法
            }
    2 对象:
         打地基的人{
            打地基的方法;
        }    
        砌墙的人{
            砌墙的方法
        }
        盖房顶的人{
            盖房顶的方法;
        }
    盖房子(打地基的人,砌墙的人,盖房顶的人){
        打地基的人.打地基的方法
        砌墙的人.砌墙的方法()
        盖房顶的人.盖房顶的方法()
    }
            
2 面向对象编程 
        核心“对象"
    1) 什么 是对象?  “万物皆对象"
        现实世界里每个实实在在存在的个体==》对象

2) :如何把现实中的对象 ==》抽象==>程序中的对象

    对现实的对象==》归类  ==》在程序定义类 ==》 创建程序中的对象
    归类:把具有相同特征和相同行为的一组对象归为一类。==》类名
        相同特征 (静态属性):属性
        相同行为(动态属性):  成员方法

    每个对象有自己特有的属性值。  =》属性属于对象所有。
    成员方法 : 属于对象所有。

什么是类?

        一  类:
        具有相同属性和方法的一组对象的统称。抽象的,概念性
        类规定了程序中的对象所具有的属性和方法。
        二类:
        类是自定义的数据类型。  ==》引用数据类型

二者的关系?

二者的关系 :
        类:是抽象的。有一组相同属性和方法的对象抽象而得。
        对象是具体的。 是类的具体化表现

一 面向对象分析  (OOD)
学生类:
        属性:学号,姓名,性别,年龄,联系方法,家庭地址,
        方法:学习,自我介绍
仅保留与项目相关的属性和方法
        1) 找到类
        2) 找到属性
        3) 找到方法

二 面向对象设计
        类图  ---》 UML(统一建模语言)
        
三 面向对象编程


 定义类的语法:

        一  定义类的语法:
    
      访问修饰符   class   类名{
        //属性
        //方法
    }
    
1   访问修饰符        public (所有包可见), 默认的(仅当前包可用)。
2  类名 , 首字母大写。见名知义。
3 属性:   属于对象所有 ->成员变量
            数据类型  属性名;
        
    数据类型 :基本类型,引用类型(类,数组,接口)
    属性名:  第一个单词首字母小写,其他单词首字母大写。见名知义
    注意:属性有默认值:
         基本类型属性值:
            byte,short,int ,long  :0
            float double :  0.0
            char :  \U0000
            boolean  : false
        引用类型:  null
4 方法:  属于对象所有  ==》成员方法
        访问修饰符  返回值类型   方法名(参数列表){
            方法体;
        }
    1) 访问修饰符  : public ,默认的, private ,protected
    2) 返回值类型  :方法执行结束后,返回的数据类型
                无返回:void
    3) 方法名 : 第一个单词首字母小写,其他单词首字母大写。见名知义
    4) 参数列表  :执行方法时需要的数据。
    5) 方法体  :完成此方法的代码。
    
    注意: 在成员方法中,可以访问属性

创建对象及内存分配:

        一 创建对象:  实例化对象
        类名  对象名  = new  类名();
        Student   stu = new Student();
        注意:对象名又称为引用名,存储是所引用对象的"地址";
二  访问对象的属性 和方法
        1 给属性赋值:
        对象名.属性名 = 值;
        2 取属性的值:
            对象名.属性名;
        3 访问对象的方法
            对象名.方法名(参数);

 如何调用对象的属性和方法?

        一 步创建对象
        类名  对象名  = new   类名();
        
二步 通过 .访问对象的属性和方法
        1 访问属性
                对象名.属性名
        2 访问方法 
                对象名.方法名(参数);

NullPointerException:

        一  java.lang.NullPointerException
        :空引用异常
当引用类型的变量没有引用数据时,而是null
    调用对象的属性和成员方法,则引发此异常

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

  属性:成员变量  :可以类中所有成员方法中访问
  局部变量  :在方法中定义的变量,形参,在条件结构或循环结构中定义的变量 { }
  1 默认值, 属性有默认值 ,局部变量没有默认值 ,局部变量在使用前必须赋值
  2 作用域不同,属性在类中任何成员方法中使用,局部变量仅可以定义的方法中使用。
  3 优先级  ,当方法中有与属性同名的局部变量时,局部变量的优先高于属性。==》就近原则
          在方法中区分属性与局部变量,在属性的前面加this.属性名;

构造方法:

    1 构造方法的语法:
              访问修饰符  构造方法名(参数列表){
                  方法体;
              }
          注意事项:
              1 构造方法名称必须与类名同名
              2 构造方法没有返回值类型。也不能写void.如果写了void则不再是构造方法
   2 构造方法的作用
       构造对象并初始化属性值
   3 何时使用构造方法:
           创建对象时使用构造方法,与new关键词一起使用。
   4 构造方法的分类:
       隐式构造方法:如果类中没有定义任何构造方法,则系统给类提供一个public的无参构造方法;
       显示构造方法:在定义类时,编写构造方法;此时系统不再提供构造方法
           无参构造方法
           有参构造方法

注意:  如果在类中定义构造方法,则系统不再提供无参构造方法;
            因此在类中定义有参构造方法时,建议同时定义一个无参构造方法。

方法重载:

 一  方法的重载  (overload)
        1 在同一个类中
        2 方法名相同,但参数不同的方法  == 》 方法重载
        3 参数不同(个数,类型不同,顺序不同)
        4 与形参的名称无关
        5 与返回值类型无关
        6 与访问修饰符无关
二 :好处
    1 方便调用,增强代码的可读性
    2  实现方法调用的多态:
        一个方法名,根据参数的不同的执行不同的操作
三 哪些方法可以重载:
    1 构造方法
    2 成员方法
    3 静态方法

this关键词:

1 this是什么?
         this是一个引用,存储是当前正在运行的对象的"地址"
             this在当前对象内部引用当前对象

         每个对象内部都有一个this
 
 2 this可以用在哪些地方?        在类中使用
         在类的成员方法中使用
         在类的构造方法中使用
 
 3 如何使用this?
         1) 在成员方法中使用,可以访问属性和成员方法
                 this.属性名  :
                 this.成员方法名(参数);
         2) 在构造方法使用,可以访问属性和成员方法,
                 this.属性名 
                 this.成员方法名()
         3)在构造方法中,访问同类其他的构造方法
                 this(参数);  ==》访问同类的其他构造方法  ,此行代码写在构造方法的第一行
                this(); -->调用同类中无参的构造方法
                 好处 : 代码的复用

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值