Day009 面向对象和方法回顾

面向过程&面向对象


面向过程思想

  • 步骤清晰简单,第一步做什么,第二步做什么.....
  • 面象过程适合处理一些较为简单的问题

面向对象思想

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

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

什么是面向对象

  • 面向对象编程(Object-Oriented Programming,OOP)

  • 面向对象编程的本质就是:以类的方式组织代码,以对象的形式封装数据

  • 抽象

  • 三大特性

    • 封装

    • 继承

    • 多态

  • 从认识论角度考虑是先有对象后有类。对象,是具体的事物。类,是抽象的,是对对象的抽象

  • 从代码运行角度考虑是先有类后有对象。类是对象的模板。


方法回顾

方法定义

//main 方法
    public static void main(String[] args) {

    }


    /*
        修饰符 返回值类型  方法名(...){
            //方法体
            return 返回值;
        }
    */
    public String sayHello(){
        return "hello,world";
    }

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

break和return的区别

  • break:调出循环(continue:跳过当前循环。break相当于辞职,continue相当于请假)

  • return:结束当前方法


方法的调用

static

加了static修饰的方法,叫静态方法,和类一起加载。而没有用static修饰的,叫非静态方法,只有在类实例化时才加载,因此在同一个类里不能用静态方法调用非静态方法(因为非静态方法在静态方法之后加载,等于调用一个还不存在的方法)。


值传递和引用传递

值传递

//值传递
public class Demo04 {
    public static void main(String[] args) {
        int a=1;
        System.out.println(a);

        Demo04.change(a);

        System.out.println(a);
    }

    //返回值为空
    public static void change(int a){
        a=10;
    }
}

输出结果

1
1

引用传递

//引用传递:对象,本质还是值传递
public class Demo05 {
    public static void main(String[] args) {
        Person person = new Person();

        System.out.println(person.name);//null

        Demo05.change(person);

        System.out.println(person.name);
    }

    public static void change(Person person){
        person.name="dwy";
    }
}

//定义了一个Person类,有一个属性:name
class Person{
    String name;
}

输出结果

null
dwy

狂神说java

posted @ 2021-05-09 15:51  南方风  阅读(41)  评论(0)    收藏  举报