chap07-面向对象


一.相关概念

  • 编程思想:大多数开发人员在遇到实际需求时的代码思考过程
  • 面向过程:遇到问题,把大问题拆解成小问题,继续把小问题拆解成更小问题…,自顶向下,逐步求精
  • 面向对象:遇到问题,先找到解决问题的对象,通过对象间彼此配合,相互联系共同解决问题

二.对象的组成

  • 对象:万物皆对象,一切客观存在的事物都是对象
    • 属性:特征,代表对象有什么
    • 方法:能力,代表对象可以做什么

三.类和对象的关系

  • 类是对象的模板,类和对象–一对多,通过一个类可以创建多个对象
  • 对象是类的实例,对象中需要满足类中对属性和方法的定义
    在这里插入图片描述

四.类的组成

  • 语法

     class 类名{//类是代码的容器,类是程序的组件,类是对象的模板
     	//属性:对象的特征,对象有什么
     	//方法:对象的能力,对象能做什么
     }
    
  • 属性:对象的特征,对象有什么

     //类的内部,方法的外部
     数据类型 属性名;
     String name;
     int age;
     boolean sex;
     double score;
    
    • 属性:又称实例变量,成员变量,全局变量

    • 对比局部变量

局部变量属性(全局变量)
位置定义在方法的内部类的内部,方法地外部
作用范围从定义行开始到所在代码块结束类的内部
默认值没用默认值(先赋值后使用)有默认值(和数组默认值相同)
命名冲突相同作用范围内不允许重名属性可以和局部变量重名,优先使用局部变量
  • 方法:对象的能力,对象能做什么

     //类的内部,其他方法的外部
     访问修饰符 返回值类型 方法名(参数表){方法的实现}
     public void study(){
     	//学习的实现过程
     }
    
    • 方法重载

       方法重载的要求:
       	方法名相同
       	参数列表不同(参数个数不同,参数类型不同,参数的类型的排列顺序不同)
       	与返回值类型和访问修饰符无关
       	//重载方法调用由实参确定,找到与实参对应的形参时,执行此方法
       	//实参并没有找到对应的形参,按照数据提升链自动向上(向上就近)匹配
       		//提升链1:byte-short-int-long-float-double
       		//提升链2:char-int-long-float-double
       	//不能出现引用不明确
      
    • 方法:又称实例方法,成员方法

  • 构造方法

    • 作用:用来创建对象

    • 语法

       访问修饰符 类名(){}
       public Student(){}
       //构造方法可以重载
       public Student(int a){}
      
    • 特点:

       1.构造方法没有返回值,方法名和类名一直
       2.如果没有显示定义构造方法,系统默认提供公开无参的构造方法
       3.构造方法只能在创建对象时由系统调用一次,不能手动调用
      

五.创建对象

  • 语法

      类名 对象名 = new 类名();
      例:Student s=new Student();
    
  • 访问属性

      //给属性赋值
      对象名.属性名=属性值;
      s.name="AA";
      //属性取值
      对象名.属性名
      s.name
    
  • 访问方法

      //调用
      对象名.方法名(参数);
      s.study();
    

六.对象的创建过程

创建对象【执行构造方法】

  • 开辟空间,给属性赋予默认值
  • 给属性赋予初始值
  • 使用构造方法给属性第三次赋值,执行构造方法内地代码

七.引用

  • java中数据类型分为:基本类型和引用类型

  • 引用类型:在堆内存开辟空间,栈空间的引用名仅仅存储地址

     类名 对象名|引用名|变量名=new 类名();
     //只有程序中出现new,才可以在堆内存中开辟空间
    
    • 基本类型进行相互赋值时,赋值的为字面值;引用类型进行相互赋值时,赋值内容为地址;

    • 对null引用类型的数据调属性或者方法会出现
      java.lang.NullPointerException(空指针异常)

八.this

  • this:当前对象

    • this:当前对象的

      • this.属性名:指当前对象的属性,区分局部变量和属性
        当局部变量和属性重名时优先使用局部变量,可以使用this.属性名来访问属性
      • this.方法名():指当前对象的方法
    • this(参数):指调用本类的其他构造方法

      this()必须放在构造方法的首行

 
 
 
 

看完如果对你有帮助,感谢点赞支持!
                                           在这里插入图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值