美文网首页
面向对象编程

面向对象编程

作者: 风一样的我1 | 来源:发表于2022-08-14 22:26 被阅读0次

    一、构造方法

    创建对象时调用

    1、创建

    (1)和类同名 (2)不加返回值类型声明

    public class Phone{
    String brand;
    String memory;
    String size;
    
    // 构造方法
    Phone(String brand, String memory, String size){
    this.brand = brand;
    this.memory = memory;
    this.size = size;
    } }
    

    注意:
    a.this相当于python中的self
    b.可使用ide的右键快捷生成构造方法

    2、调用和使用

    类名 对象名称 = new 类构造方法(参数)
    默认值:
    byte short int long char 默认值是0
    float double 默认值0.0
    boolean 默认值false
    剩余类型 null

    二、方法

    方法分为两类,方法执行需要的数据来源
    全部来自方法参数,是static方法
    部分来自于对象内部,对象方法
    对象方法不需要加对象.字段调用自身字段,因为直接和对象绑定;对象方法不需要加static

    三、四种变量

    1、静态变量

    语法:static 变量类型 变量名 = 变量值
    调用:类名.静态变量
    所有对象生成后该变量都一致,可以理解为与类所绑定。若通过一个对象更改它的值,所有对象相应的值也会改变。
    作用范围:从类加载开始,到类卸载为止

    2、参数变量

    python中形式变量
    作用范围:方法调用开始到方法调用结束

    3、局部变量

    方法内部定义的变量,必须赋值
    作用范围:从定义开始,到包围它的}结束

    4、成员变量(对象变量)

    • 对象的属性(字段)
    • 不赋值,也有默认值
    • 作用范围:从对象创建开始,到对象不能用为止
    • 和静态变量的区别,对象变量是对象私有的,而静态变量是所有对象共享的

    四、继承

    1、基本语法

    继承可以减少重复代码,代码的可维护性变高
    class 子类 extends 父类{}
    子类可继承父类的字段和方法,但是不能继承构造方法。如果父类有带参构造,子类必须通过super方法调用父类的带参构造。
    如以下代码,B类调用了父类的构造方法。获得了父类字段和方法。

    public class Test {
        public static void main(String[] args) {
            B b = new B("b");
            b.test();
        }
    }
    
    // 父类
    class A {
        String name;
        A(String name){
            this.name = name;
        }
        void test(){
            System.out.println("调用父类方法");
        }
    }
    
    class B extends A{
        // 使用super方法调用A的构造方法
        B(String name) {
            super(name);
        }
    }
    

    2、特点

    • 单继承
      子类只能继承一个父类
    • Object,是其它类型直接或者间接的父类型,最顶层父类型。
      在生成类的时候,默认继承Object
    • 子类和父类、祖先类型之间,可以用“是一个”的关系来表达

    相关文章

      网友评论

          本文标题:面向对象编程

          本文链接:https://www.haomeiwen.com/subject/ybjnwrtx.html