面向对象学习笔记1(java)

本文详细解析了面向过程与面向对象的设计思想,介绍了Java类的定义、对象创建、类和对象的关系,包括成员变量、构造方法、方法重载等内容。重点讨论了类模板的运用和对象实例化在编程中的实践。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

面向过程和面向对象的设计思想

  • 面向过程procedure orientd progamming 缩写 POP

    • 分析出解决问题所需要的步骤,然后把步骤一步一步实现

    • 面向过程编程直接关注流程

  • 面向对象object oriented programming 缩写 OOP

    • 以分类的方式进行思考和解决问题

    • 面向对象先对整体关系作出分类,然后根据不同的类深入细节的处理

  • 面向对象的思想符合人类的认知习惯

  • 面向对象无法取代面向过程,他们是相辅相成的。面向对象关注于从宏观

    上把握事物之间的关系,在具体到如何实现某个细节时,仍然采用面向过

    程的思维方式。面向对象如果离开了面向过程,就无法实现真正的落地,

    成为无源之水

java类

  • 什么是类?

    • 类是一个模板,它描述一类事物的属性和行为的集合.

    • 类是表示一个客观世界某类群体的一些基本特征抽象.

  • 类的结构

    • 成员变量:事物属性的描述;

    • 方法:事物的行为;(可以做的事情)

    • 构造方法:用于创建对象;

    • 内部类: 即在类体中声明的类。

    • 块:一段没有名称的代码块。

java类的定义

  1. 发现类 根据不同类型的对象,抽象出”类“

    • 类的声明格式:[访问权限修饰符] [修饰符] class Car{ }

      • 访问修饰符有两种public、无(默认)

      • 修饰符:final,abstract

      • 关键字class用来定义一个类

    • java类的命名规则:类名首字母大写,见名知意,驼峰表示

  2. 发现类的共有属性(成员变量)

    • 例如:

      //汽车的共有属性:颜色 名字 价格...
      public class Car {//汽车类
      //定义类的成员变量(属性)名词,成员:类的成员,在类中定义
      //声明成员变量的格式为: [访问权限修饰符] [修饰符] type attr_name [=defaultValue] ;
          String name;//名字
          float price;//价格
          String color;//颜色
      }

  3. 发现类的方法

    //汽车类共有的行为:启动 行驶 刹车...
    public class Car {//汽车类
    //定义类的成员变量(属性)名词,成员:类的成员,在类中定义
        String name;//名字
        float price;//价格
        String color;//颜色
    //方法声明格式:
    //[访问权限修饰符] [修饰符] [返回值类型] [方法名称](){}
    //例 
        void start(){
            System.out.println("汽车启动");
            (return 返回值;) 
        }
    }

java对象

  • 对象:对象是类的一个实例,是以类为模板在内存中创建的实际存在的实例。

  • 对象的创建和使用

    • 对象的创建和使用

      • 例:

        Car bm = new Car();
        /*
        Car bm:使用Car类作为类型(模板)声明一个变量bm.
        new Car():使用new + Car类 构造方法 创建对象.
        = :将右边创建的对象地址 赋给 左边的bm变量
        ​
        可以使用bm变量访问对象中的成员变量和成员方法.
        */

      • 同一类的每个对象有不同的成员变量存储空间。

      • 同一类的每个对象共享该类的方法。

类和对象

  • 总结类和对象

    • 类是一类事物的抽象概念,是一个模型.

    • 对象是由这个模型所创造的一个个具体存在的,实实在在存在的实例.

    • 所以创建对象的过程也叫实例化对象.

    现实生活中先有对象后有类,而编程时先设计类后创建对象.

变量分类

  • 按照位置变量分为

    • 成员变量

      • 成员变量是定义在类中,方法体之外的变量。

      • 成员变量可以使用Java语言中任何一种数据类型(包括基本类型和引用类型)。

      • 在定义成员变量时可以对其初始化,如果不对其初始化,Java使用默认的值对其初始化。

      • 成员变量在创建对象的时候会从类中复制一份到对象中。

      • 成员变量可以被类中方法、构造方法和特定类的语句块访问。

      • 成员变量的作用范围为整个类体。

    • 局部变量

      • 在方法、构造方法或者语句块中定义的变量被称为局部变量。

      • 局部变量可以使用Java语言中任何一种数据类型。

      • 局部变量在使用前必须初始化赋值。

      • 变量声明和初始化都是在方法中,方法结束后,变量就会自动销毁。

方法分类

  • 成员方法:成员方法是定义在类中。

    • 语法格式:

      修饰符 返回值类型 方法名 ( 参数列表) { 
          方法体语句;
          (return; 返回值) 
      }

    • 构造方法:用来初始化对象的方法

构造方法

  • 作用:用来初始化新创建的对象

  • 特点:构造方法名与类名相同,且没有返回值,且不需要使用void修饰

  • 在创建一个对象的时候,至少要调用一个构造方法。

  • 每个类都有构造方法。如果没有显式地为类定义构造方法,

    Java将会为该类提供一个默认构造方法,但是只要在一个Java类中定义了一个构造方法后,默认的无参构造方法即失效。

  • 一个类可以有多个构造方法。

  • 例:

    public class Car {//在无参构造方法中为新创建的对象用默认值初始化赋值
        String name;
        float price;
        String color;
        public Car(){
            System.out.println("无参构造方法");
        }
        public Car(String name,float price,String color{
            //定义了有参构造方法为新创建的对象初始化赋值
            this.name = name;
            this.color = color;
            this.price = price;
            System.out.println("有参构造方法");
        }
    }
    /*
    创建Car类的对象 
    Car car1 = new Car();
    Car car2 = new Car(“宝马”,300000f,"蓝色");
    */

方法的重载

  • 方法的重载是指同一个类中具有相同的名字,但参数不同的多个方法。

  • 例:

    public class Car {
        String name;
        float price;
        String color;
        public Car(){
            System.out.println("无参构造方法");
        }
        public Car(String name,float price,String color){
            this.name = name;
            this.color = color;
            this.price = price;
            System.out.println("有参构造方法");
        }
        public Car(String name,String color,float price){
            this.name = name;
            this.color = color;
            this.price = price;
            System.out.println("重载有参构造方法");
        }
        public void run(){
            System.out.print(name+"行驶  ");
            System.out.println("成员方法");
        }
        public void stop(){
            System.out.print(name+" 刹车 ");
            System.out.println("成员方法");
        }
    }
        Car ms = new day11_2Car("玛莎",6000000f,"橙色");
        Car dz = new day11_2Car("大众","黑色",300000f);

  • 参数列表不同(三个方面不同)

    • 数量不同

    • 类型不同

    • 顺序不同

  • 调用时,会根据不同的参数列表选择对应的方法

  • 构造方法和成员方法都可以重载

  • 注意方法重载跟方法的返回值类型没有任何关系

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值