2021-09-01

面向对象编程

一、面向过程&面向对象

面向过程思想

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

 面向对象思想 

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

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

二、什么是面向对象

  • 面向对象编程(Object-Oriented Programming,OOP)
  • 面向对象编程的本质就是:以类的方式组织代码,以对象的方式组织(封装)数据。
  • 抽象
  • 三大特性:

  • 封装
  • 继承
  • 多态
  • 认识论角度考虑是现有对象后有类。对象,是具体的事物。类,是抽象的,是对对象的抽象
  • 代码运行角度考虑是先有类后有对象。类是对象的模板。

三、回顾方法及加深

  • 方法的定义

  • 修饰符

  • 返回类型

  • 方法名:见名知意

  • 参数列表

  • 异常抛出

   public void readFile(String file) throws IOException{
        
    }

方法调用

  • 静态方法 static  

    • 静态方法可以直接用类名调用方法
    • public class Student {
          //非静态方法
          public static void say(){
              System.out.println("学生说话了");
          }
      }
      

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

  • 非静态方法 没有static

    • 非静态方法要先进行实例化

public class Student {
    //非静态方法
    public  void say(){
        System.out.println("学生说话了");
    }
}
public class demo01 {
    public static void main(String[] args) {
        //实例化这个类 new一个出来
        //对象类型 对象名=对象值;
        Student student=new Student();
        student.say();
    }


}
public static void a(){
        b();
    }
    //类实例化之后才存在,静态不能调用非静态
    public void b(){
        
    }
  • 形参和实参

  • public class demo02 {
        public static void main(String[] args) {
            int a=1;
            System.out.println(a);//1
            demo02.change(a);
            System.out.println(a);//1
        }
        // 没有返回值,所以第二个打印接收不到,所以输出原来的
        public static void change(int a){
            a=10;
        }
    }

  • 值传递和引用传递

  • //引用传递:对象,本质还是值传递
    //类似指针
    
    //对象;
    
    public class demo03 {
        public static void main(String[] args) {
         Person person=new Person();
            System.out.println(person.name);//null
            demo03.change(person);
            System.out.println(person.name);//中国
         
        }
        public static void change(Person person){
            //person是一个对象:指向-->person person = new Person();
            person.name="中国";
        }
        //定义了一个person类,有一个属性:name
        static class Person{
            String name;
        }
    }

  • this关键字:当前类

。 

猜你喜欢

转载自blog.csdn.net/s1623009261/article/details/120049278