Java面对对象编程(1)

Java面对对象编程(1)

什么是面向对象(oop)

面向过程&面向对象

  • 面向过程思想(线性思维)
    • 步骤清晰简单,第一步做什么,第二部做什么....
    • 面对过程适合处理一些较为简单的问题

面向过程像流程

  • 面向对象思想()
    • 物以类聚,分类的思维方式,思考问题首先会解决问题需要那些分类,然后对这些分类进行单独思考。最后才对某个分类下的细节进行面向过程的思考。
    • 面向对象适合处理复杂的问题,适合处理需要多人协作的问题!

面向对象像框架

属性加方法变成类

  • 对于描述复杂的事物,为了从宏观上把握,从整体上合理分析,我们需要使用面向对象的思路来分析整个系统。但是,具体到围观操作,仍然需要面对过程的思路去处理

什么是面向对象

  • 面向对象编程(Object-Oriented Programming , OOP)
  • 面向对象编程的本质就是:以类的方式组织代码,以对象的组织(封装)数据
  • 抽象
  • 三大特性
    • 封装
    • 继承
    • 多态
  • 从认识论角度考虑是先有对象后有类。对象,对具体的事物。类,是抽象的,是对对象的抽象
  • 从代码运行角度来考虑是先有类后又对象。类是对象的模版

方法的回顾及加深

方法的定义

  • Java的方法类似于其他语言的函数,是一段用来完成特定功能的代码,一般情况下,定义一个方法包含以下语法:
  • 方法包含一个方法头和一个方法体。下面是一个方法的所有部分:
    • 修饰符:修饰符,这是可选的,告诉编译器如何调用该方法。定义了该方法的访问类型
    • 返回值类型:方法可能会返回值。returnValueType是方法返回值的数据类型。有些方法执行所需的操作,但没有返回值。在这种情况下,returnValueType是关键字void
    • 方法名:是方法的实际名称。方法名和参数表共同构成方法签字
    • 参数类型:参数像是一个占位符。当方法被调用时,传递值给参数。这个值被称为实参或变量。参数列表是指方法的参数类型、顺序和参数的个数。参数是可选的,方法可以不包含任何参数。
      • 形势参数:在方法被调用时用于接受外界的数据
      • 实参:调用方法时实际传给方法的数据
    • 方法体:方法体包含具体的语句,定义该方法的功能
  • break 和 return 的区别
    • break 跳出switch,结束循环
    • return 代表方法结束 返回值要与返回值类型相同
  • 异常抛出
//main 方法
    public static void main(String[] args) {

    }

    /*
    修饰符  返回值类型  方法名(....){
        方法体
        return 返回值;
        }
     */
    //return 结束方法 返回一个结果
    public String sayHello(){
        return "Hello,World";
    }

    public void hello(){
        return;
    }

    public int max(int a,int b){
        return a>b ? a: b;//三元运算符
    }

方法调用:递归

  • 调用方法:对象名.方法名(实参列表)
  • Java支持两种调用方法的方式,根据方法是否返回值来选择
  • 当方法返回一个值的时候,方法调用通常被当做一个值。例如:
int larger = max(30,40);
  • 如果方法返回值是void,方法调用一定是一条语句。
System.out.println("Hello,World!");

静态与非静态方法的调用

	//同为静态或非静态都可以直接调用
    //如果a为静态,b为非静态 a无法调用b
    // static是 和类一起加载的
    //非静态 的 b是类实例化之后才存在    所以相当于存在的调用非存在的,不成立
    public static void a(){
        //b();
    }

    //b是类实例化之后才存在
    public void b(){

    }

值传递

解释:实参传递给形参的是值 形参和实参在内存上是两个独立的变量 对形参做任何修改不会影响实参

引用传递

实参传递给形参的是参数对于 堆内存上的引用地址 实参和 形参在内存上指向 了同一块区域 对形参的修改会影响实参

类与对象的关系

  • 类是一种抽象的数据类型,它是对某一类事物整体描述/定义,但是并不能代表某一个具体的事物

    • 动物、植物、手机......
    • Person类、Pet类、Car类等,这些类都是用来描述/定义某一类具体的事物应该具备的特点和行为
  • 对象是抽象概念的具体实例

    • 张三就是人的一个具体实例,张三家里的旺财是狗就是狗的一个具体实例
    • 能够体现出特点,展现出功能的是具体的实例,而不是一个抽象的概念

创建与初始化对象

  • 使用new关键字
  • 使用new关键字创建的时候,除了分配内存空间之外,还会给创建好的对象进行默认的初始化 以及对类中构造器的调用
  • 类中的构造器也成为构造方法,是在进行创建对象的时候必须要调用的。并且构造器有以下两个特点:
    • 必须和类的名字相同
    • 必须没有返回类型,也不能写void
  • 构造器必须要掌握

//alt+insert 生成构造体
构造器:
        1.和类名相同
        2.没有返回值
    作用:
        1.new 本质在调用构造方法
        2.初始化对象的值
    注意点:
        1.定义了有参构造之后,如果想使用无参构造,显示的定义一个无参的构造
小结
/*
    1.类与对象
        类是一个模版:抽象  对象是一个具体的实例
    2.方法
        定义、调用
    3.对象的引用
        引用类型:  基本类型(8)
        对象是通过引用来操作的: 栈--->堆
    4.属性:  字段Field  成员变量
        默认初始化:
            数字  0   0.0
            char:  u0000
            boolean:  false
            引用:  null

     修饰符  属性类型  属性名  =  属性值
     5.方法:
        -  必须使用new 关键字创造对象, 构造器 Person Murray = new Person();
        -  对象的属性  Murray.name
        -  对象的方法  Murray.eat()
    6.类:
         静态的方法   属性
         动态的方法   方法
 */

posted @ 2021-02-26 15:58  弹琴的猫  阅读(48)  评论(0)    收藏  举报