Java入门04 - 类和方法/继承和多态

1. 编程语言的分类

面向过程/面向对象、动态语言/静态语言和解释型/编译型语言
在这里插入图片描述

2. 类和方法

万事万物皆对象。数据可以被拆分,拆分出的特征就是类的属性

😃 面向对象编程主要体现三个特性:封装、继承和多态

2.1 类和对象

  • 类是Java最重要的“数据类型”
  • 类声明的变量叫对象 -> 类是用来创建对象的模板

类的实现:类声明 + 类体

class 类名{
    
    // 成员变量
    // 成员方法
    // 类体的内容
}

2.2 成员变量

成员变量的定义与普通变量的定义相同(数据类型 变量名称[ = 值]

成员变量其实就是普通的变量,可设初值,也可不设。若不设初始值,则有默认值:

数据类型 默认值
byte, short, int, long 0
float, double 0.0
boolean false
char ‘’
引用类型(例如String) null

举个栗子

public class Bird{
   
    String wing;
    String claw;
    String beal;
    String feather;
}

2.3 成员方法

1)成员方法的定义

方法的定义必须在某个类中

 [权限修饰符] [返回值类型]方法名([参数类型 参数名])[throws 异常类型]{
	//方法体
	return 返回值;
}
  • 权限修饰符:private, public, protected或缺省(只能在本类及同一包中的类中访问)
  • 返回值类型:任何类型或void

举个栗子

public void showGoods(){
   
    System.out.println("库存商品信息");
}

public int showGoods(){
   
    System.out.println("库存商品信息");
    return 1;
}

2)成员方法的参数

  • 实参:调用方法时可以给该方法传递一个或多个值,传给方法的值
  • 形参:方法内部,接收实参的变量(只在方法内部有效)

Java中方法的参数主要有3 种:值参数、引用参数和不定长参数

1. 值参数

实参与形参间按值传递;编译器为形参分配存储单元,然后将对应的实参的值复制到形参中

修改形参值,并不会改变实参的值

举个栗子

public class Book{
   
    public static void main(String[] args){
   
        Book book = new Book();
        int shelf = 30;
        int box = 40;
        System.out.println("Put the book in the shelf into the box, " +
                "then the total number in the box is " + book.add(shelf, box) +
                ". \nBook in the shelf: " + shelf + ", book in the original box: " +box);
    }

    private int add(int shelf, int box){
   
        box = shelf + box;
        return box;
    }
}

2. 引用参数

在给方法传递参数时,参数类型是数组或其他引用类型

在方法中对参数的修改会反映到原有数组或者其他引用类型上
举个栗子

public class ExchangeRate{
   
    public static void main(String[] args){
   
        ExchangeRate rate = new ExchangeRate();

        double[] denomination = {
   1, 10, 100};
        System.out.println("==== 美元 ====");
        for (int i = 0; i < denomination.length; i++){
   
            System.out.println(denomination[i]);
        }

        rate.change(denomination);
        System.out.println("\n==== 人民币 ====");
        for (int i = 0; i < denomination.length; i++){
   
            System.out.println(denomination[i]);
        }
    }

    public void change(double[] arr){
   
        for(int j = 0; j < arr.length; j++){
   
            arr[j] = arr[j] * 6.903;
        }
    }
}

3. 不定长参数
声明方法时,如果有若干个相同类型的参数,可定义为不定长参数。

权限修饰符 返回值类型 方法名(参数类型... 参数名)
(参数类型和参数名间是三个点)

2.4 构造方法

构造方法是与类同名的方法,对象的创建是通过构造方法完成的。

  • 当类实例化一个对象时,类都会自动调用构造方法
  • 构造方法没有返回类型,也不能定义为void
  • 构造方法的作用:初始化对象,把定义对象的参数传给对象
  • 0
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值