Day30-20260126

单词

throws:抛出

Exception:异常

面向对象编程OOP

  1. 初识面向对象
  2. 方法回顾和加深
  3. 对象的创建分析
  4. 面向对象三大特性
  5. 抽象类和接口
  6. 内部类及OOP实战

面向过程&面向对象

面向过程思想

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

面向对象思想

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

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

笔记:

属性+方法=类

什么是面向对象

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

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

抽象

三大特性:

  1. 封装
  2. 继承
  3. 多态

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

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

回顾方法及加深

方法的定义

  1. 修饰符

  2. 返回类型

  3. break和return的区别

    1. break:

      1. 跳出switch语句
      2. 结束整个循环
    2. return:

      1. 方法结束了

      2. 返回值与返回值类型必须相同

      3. 后面可以不带参数

      4. 结束方法,返回一个结果

      5. //return:结束方法,返回一个结果
            public String sayHello(){
                return "hello,world";
            }
            public void print(){
                return;
            }
            public void hello(){
                return;
        
  4. 方法名:注意规范 见名知意

  5. 参数列表:(参数类型,参数名)...

  6. 异常抛出:疑问,后面讲解

package com.oop.demo01;

import java.io.IOException;

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

    }
    /*
    修饰符 返回值类型 方法名(方法参数...){
        //方法体
        return 返回值;
    }
     */
    //return:结束方法,返回一个结果
    public String sayHello(){
        return "hello,world";
    }
    public void print(){
        return;
    }
    public void hello(){
        return;
    }
    public int max(int a,int b){
        return a>b ? a : b;//三元运算符,如果a>b,结果为a,否则为b
    }
    //数组下标越界:Arrayindexoutofbounds
    //异常抛出,throws:抛出。Exception:异常
    public void readFile(String file) throws IOException{

    }
}

方法的调用

  1. 静态方法

  2. 非静态方法

    1. package com.oop.demo01;
      
      public class Demo02 {
          //静态方法 static
          //非静态方法
          public static void main(String[] args) {
              //类名。方法名
              Student.say();//say方法是static的
              //Student.say1();//say1方法没有static会报错
              //实例化这个类 new
              new Student().say1();//一般写作下行样式
              Student student = new Student();//对象类型 对象名 = 对象值
              student.say1();//new 后可以调用非静态方法(无static的)
          }
          //a与b都是普通的方法,没有静态的方法,a是可以直接调用b的
          public void a(){
              b();
          }
          public void b(){}
          //a与b都是静态的方法,a也可以直接调用b的
          public static void a1(){
              b1();
          }
          public static void b1(){}
          //a是静态的方法,b不是静态的方法,a不可以直接调用b的
          //原因:static和类一起加载的,时间早
          public static void a2(){
              //b2();
          }
          //类实例化之后才存在,时间迟
          public  void b2(){}
          //调用不存在的东西所以会报错
      
      }
      
      
    2. package com.oop.demo01;
      //学生类
      public class Student {
          //静态方法
          public static void say(){
              System.out.println("学生说话了");
          }
          //非静态方法
          public void say1(){
              System.out.println("学生说话了");
          }
      }
      
      
  3. 形参和实参

    1. package com.oop.demo01;
      
      public class Demo03 {
          public static void main(String[] args) {
              //实际参数与形式参数的类型要对应
              int add = Demo03.add(1, 2);
              System.out.println(add);
          }
          public static int add(int a,int b){
              return a+b;
          }
      
      }
      
      
    2. 3
      
      进程已结束,退出代码为 0
      
  4. 值传递和引用传递

    1. package com.oop.demo01;
      //值传递
      public class Demo04 {
          public static void main(String[] args) {
              int a = 1;
              System.out.println(a);//1
              Demo04.change(a);
              System.out.println(a);//1
          }
          //返回值为空
          public static void change(int a){
              a = 10;
          }
      }
      
      
    2. 1
      1
      
      进程已结束,退出代码为 0
      
      
    3. package com.oop.demo01;
      //引用传递:对象,本质还是值传递
      //对象,内存没学,会晕
      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是一个对象:指向的是-->Person person = new Person();这是一个具体的人,可以改变属性!
              person.name = "贾光清";
          }
      }
      //定义了一个Person类,有一个属性:name
      class Person{
          String name;//null
      }
      
    4. null
      贾光清
      
      进程已结束,退出代码为 0
      
  5. this关键字:继承讲

本文介绍了面向对象编程(OOP)的核心概念,重点包括:

  1. 面向对象与面向过程的区别:面向对象适合处理复杂问题,强调分类思维;面向过程适合简单问题
  2. 类的定义:属性+方法=类,类是对象的模板
  3. 方法详解:修饰符、返回值、参数列表、异常处理等
  4. 方法调用:区分静态方法(类名调用)和非静态方法(对象调用)
  5. 参数传递:值传递和引用传递的区别,引用传递可修改对象属性
  6. 面向对象三大特性:封装、继承、多态(将在后续讲解) 通过代码示例展示了方法定义、调用及参数传递的具体实现方式。
posted @ 2026-01-26 23:14  贾光清  阅读(0)  评论(0)    收藏  举报