• JAVA构造方法(与类名相同的方法),类方法与实例方法


    一、构造方法

    • 跟类名相同的方法名 被称作构造方法,其作用是用于当一个类被new成对象时,对象需要声明的一些变量的构造声明。

    1、构造方法的特点:

    (1)构造方法的名字必须与定义他的类名完全相同(甚至连void也没有),且没有返回类型;

    (2)构造方法的调用是在创建一个对象时使用new操作进行的。构造方法的作用初始化对象

    Person p = new Person();   : person() 调用的就是Person的构造方法。
    
    • 1

    (3)每个类可以有零个或多个构造方法;

    (4)不能被static、final、synchronized、abstract和native修饰。且构造方法不能被子类继承。

    (5)构造方法在创建对象时自动执行,一般不能显式地直接调用。

    2、构造方法一般分为两类(无参的构造方法和有参的构造方法)
    (1)无参数构造方法

    // 无参构造方法
    class Banana{
    	public Banana() {
    		System.out.println("无参的构造方法被调用,这里是香蕉");
    	}
    }
    public class text3 {
    	public static void main(String[] args) {
    		Banana s = new Banana();
    	}
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11

    在这里插入图片描述

    • 从代码和结果可以看出,“new Banana()”除了实例化对象,还调用了构造方法Banana();

    (2)有参数构造方法

    // 有参构造方法
    class Apple{
    	int size;
    	public Apple(int a) {
    		System.out.println("有参的构造方法被调用,这里是苹果");
    		size = a;
    	}
    	public void shuchu() {
    		System.out.println("这个苹果有" + size + "这么大");
    	}
    }
    public class text3 {
    	public static void main(String[] args) {
    		Apple apple = new Apple(18);
    		apple.shuchu();
    	}
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17

    在这里插入图片描述

    • 从代码和结果可以看到Apple(int a)这是一个有参的构造方法,在new Apple(18)实例化对象的同时,把参数传给a赋值给size并调用了shuchu()这个构造方法。

    3、构造方法的重载

    /*
     * 构造方法的重载
     */
    class Food{
    	String name;
    	int size;
    	public Food(String b , int a) { // 构造函数
    		name = b;
    		size = a;
    	}
    	public Food(String b) {
    		name = b;
    	}
    	public Food(int a) {
    		size = a;
    	}
    	public void shuchu() {
    		System.out.println("这个" + name +"有" + size + "这么大");
    	}
    }
    public class text4 {
    	public static void main(String[] args) {
    		Food s = new Food("苹果");
    		Food x = new Food("草莓",18);
    		Food z = new Food(20);
    		s.shuchu();
    		x.shuchu();
    		z.shuchu();
    	}
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30

    二、类方法(静态方法,用static修饰的方法)

    类方法是属于整个类的,所以类方法的方法体中 不能有 与类的对象有关 的内容。即类方法体有如下限制:

    • 类方法中不能引用对象变量
    • 类方法中不能调用类的对象方法
    • 类方法不能被覆盖(重写)
    • 在类方法中不能调使用super,this关键字;

    三、实例方法

    当一个类创建了一个对象后,这个对象就可以调用该类的方法(对象方法)。

    • 实例方法中可以引用对象变量
    • 实例方法中可以引用类变量
    • 实例方法中可以调用类方法
    • 对象方法中可以使用super,this关键字;

    四、类方法与实例方法的区别

    • 类方法在加载类时就被分配了内存地址,因此加载后即可被任意对象调用,并且可以通过类名直接调用(类名.方法名)。
    • 实例方法需要在创建对象后才会被分配内存地址,所以实例方法不能通过类名调用。
  • 相关阅读:
    AtCoder Beginner Contest 275(C,E 补)
    实现高并发Web服务器(C语言版)
    200 套基于Java开发的Java毕业设计实战项目(含源码+说明文档)
    再谈Rocket MQ消费进度问题
    关于浅克隆和深克隆入门理解
    重复的子字符串(K M P算法)
    FFplay文档解读-46-视频源,视频接收器
    微软出品自动化神器【Playwright+Java】系列(九)多线程、重定向、弹出新窗口、截图、新页面、录制、页面对象模式操作
    阿里天池街景字符编码YOLO5方案
    Vue基础(九)——ElementUI
  • 原文地址:https://blog.csdn.net/LIZHUOLONG1/article/details/125620825