对象与类 作为补充

第4章 对象与类

4.1 面向对象程序设计

指定了如何构造对象。可以将想象成制作小甜品的模具,将对象想象为小甜饼。

​ 由一个构造对象的过程称为创建这个类的一个实例

object 超类

封装

​ 封装是将数据和行为组合在一个包中,并对对象的使用者隐藏具体的实现细节。

​ 对象中的数据称为实例字段,操作数据的过程称为方法

类之间的关系

​ 依赖:uses-a

​ 聚合:has-a 包含关系

​ 继承:is-a

4.3 自定义变量
package com.core.test04;

import java.time.LocalDate;

public class Employee {
    //实例
    private String name;
    private double salary;
    private LocalDate hireDay;

    //构造器,与类同名
    public Employee(String name, double salary,int year,int month,int day){
        this.name = name;
        this.salary = salary;
        this.hireDay = LocalDate.of(year,month,day);
    }

    //方法
    public String getName() {
        return name;
    }

    public double getSalary() {
        return salary;
    }

    public LocalDate getHireDay() {
        return hireDay;
    }
	//行为
    public void raiseSalary(double byPercent){
        double raise = salary * byPercent /100;
        salary += raise;
    }
}
从构造器开始

构造器与类同名

每个类可以由一个以上的构造器

构造器可以有0个、1个或多个参数

构造器没有返回值

构造器总是结合new操作符一起调用

用var声明局部变量

​ var harry = new Emplyee(“Harry Hacker”,50000,1989,10,1);

注:var关键字只能用于方法中的局部变量。参数和字段的类型必须声明

final实例字段

​ 可以将实例字段定义为final。这样的字段必须在构造对象时初始化。必须确保在每一个构造器执行之后,这个字段的值已经设置,并且以后不能再修改这个字段。

​ final修饰符对于类型为基本类型或者不可变类的字段尤其有用。

4.4 静态字段与静态方法
静态字段

​ 静态字段属于类,而不属于单个对象

​ eg:private static int nextId = 1;

​ public static final double PI = 3.14

​ 属性:将对象变量升级成类变量,不用实例化,直接 类名.属性 使用,修饰属性时,属性名一般全部大写,多个单词之前用_
​ 方法:将对象方法升级成类方法,不用实例化,直接 类名.方法() 使用
​ 代码块:程序运行时,会直接优先级最高运行的代码

静态方法

​ 静态方法是不操作对象的方法。

两种情况可以使用静态方法

​ 方法不需要访问对象状态,因为它需要的所有参数都通过显示参数提供

​ 方法只需要访问类的静态字段(例如Employee.advanceId)

工厂方法

​ 类似LocalDate和NumberFormat的类使用静态工厂方法

4.5方法参数

一个方法不可能修改基本数据类型的参数,但是可以修改对象参数

方法不能让一个对象参数引用一个新对象

4.6对象构造
重载 overload

​ 如果多个方法有相同的方法名但有不同的参数

4.7 记录

​ 记录时一种特殊形式的类,其状态不可变,而且公共可读。

​ 一个记录的实例字段称为组件

​ 对于完全由一组变量表示的不可变数据,要使用记录而不是类

public Employee(double yearSalary){     //重写
    this.yearSalary = yearSalary;
}

//记录
record Point(double x,double y){
    public double distanceFromOrigin(){return Math.hypot(x,y);}
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值