面向对象编程

一、构造方法

创建对象时调用

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
  • 子类和父类、祖先类型之间,可以用“是一个”的关系来表达

你可能感兴趣的:(面向对象编程)