面向对象,方法复习

面向对象,方法复习

image-20230629153425441

面向过程&面向对象

面向过程思想

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

面向对象思想

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

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


什么是面向对象

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

方法的定义

  1. 修饰符
  2. 返回类型
  3. break:跳出switch,结束循环和return的区别
  4. 方法名:注意规范就OK,见名知意
  5. 参数列表:〔参数类型,参数名).
  6. 异常抛出:疑问,后面讲解
package com.oop.demo01;

public class Demo01 {//Demo01就是类
    //main方法
    public static void main(String[] args) {
        int a=3;
        int b=6;
        int z=max(a,b);
        System.out.println(z);
    }

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

    public void hello(){
        return;//结束方法,返回一个结果!
    }

    public static int max(int a,int b){
        return a>b?a:b;//三元运算符,比较啊,a,b,如果a大,输出a,反之,输出b
    }
}


方法的调用:递归

  • 静态方法
  • 非静态方法

静态方法

package com.oop.demo01;

public class Student {
    //静态方法
    public static void say(){
        System.out.println("学生说话了");
    }
}
======================================
package com.oop.demo01;

public class Demo02 {
    //静态方法  static
    //非静态方法
    public static void main(String[] args) {
        Student.say();
    }

}

非静态方法

package com.oop.demo01;

public class Student {
    //非静态方法
    public void say(){
        System.out.println("学生说话了");
    }
}
=============================================
package com.oop.demo01;

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

    //static的静态和类一起加载
    public static void a(){
        b();//报红
    }
    //类实例化之后才存在
    public void b(){

    }
}

形参与实参

package com.oop.demo01;

public class Demo03 {
    public static void main(String[] args) {
        //实际参数与形式参数要对应
        int add = Demo03.add(2, 6);
        //int add = add(1, 2);
        System.out.println(add);
    }
    public static int add(int a,int b){
        return a+b;
    }
}

值传递和引用传递

package com.oop.demo01;
//引用传递:对象,本质还是值传递
//对象,内存
public class Demo05 {
    public static void main(String[] args) {
        Person person = new Person();
        System.out.println(person.name);//null
        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
}

this关键字

posted @   新至所向  阅读(13)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现
点击右上角即可分享
微信分享提示