Java基础学习之面向对象01

面向对象

    面向对象编程(Object-Oriented Programming,OOP) 抽象 从认识论角度考虑是先有对象后有类。对象,是具体的事物。类,是抽象的,是对对象的抽象。 从代码运行角度考虑是先有类后有对象。类是对象的模版。

面向对象编程的本质

    面向对象编程的本质:以类的方式组织代码,一对象的组织(封装)数据。

面向对象的三大特性

    封装 继承 多态

面向过程 & 面向对象

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

面向过程思想

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

面向对象思想

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

回顾方法及加深

方法的定义

    修饰符 返回类型 break: 跳出switch,结束循环和return的区别 方法名:注意规范就OK,见名知意 参数列表:(参数类型,参数名)… 异常抛出

方法的调用

    静态方法 非静态方法 形参和实参 值传递和引用传递 this关键字


方法的静态与非静态

关于方法的静态与非静态(static),我们直接来看代码

当一个类里的两个方法a和b都同是静态或者非静态时,两个方法可以互相调用,之间不会报错

当两个方法一个为静态,而另一个为非静态时,两个方法则不可以互相调用,会报错

图中a为静态方法,b为非静态方法。

在静态方法中test,可以直接调用方法a,但是不能调用方法b;

在静态方法中a,可以直接调用方法test,但不能调用方法b;

在非静态方法b,可以直接调用方法a和方法test。

原因

static修饰的方法是和类一起加载的,即当类存在的时候static也就存在了,如方法test和方法a;

而非静态方法b是和对象有关的,对象创建的时候它才存在,即类实例化之后才存在,未实例化则会报错。若此时还想要使用方法b,则需要在对应方法中创建对象之后才能调用,操作如下

package src.com.oop;

public class Demo02 {
          
   
    public static void main(String[] args) {
          
   
        //实例化这个类new
        //对象类型  对象名 = 对象值;
        Student student = new Student();
        student.say();
    }

    public static void test(){
          
   
        a();
        b();

        Demo02 demo02 = new Demo02();//实例化
        demo02.b();//此时即可调用b非静态方法
    }

    public static void a(){
          
   
        //静态方法
        b();
        test();
    }

    public void b() {
          
   
        //非静态方法
        a();
        test();
    }


}
经验分享 程序员 微信小程序 职场和发展