构造器和this static静态

本文深入探讨了构造器的概念及其在对象初始化中的作用,并详细解释了this关键字的应用场景及重要性,包括如何区分成员变量与局部变量,以及在方法和构造器之间的调用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

构造器

**一个在创建对象时 被自动调用的特殊方法
作用:初始化对象 为对象进行初始化工作**

构造器是一种特殊的方法:

构造器的方法名必须和类名一致!
构造器虽然有返回值,但是不能定义返回类型(返回值的类型肯定是本类),不能在构造器里调用return。
通过new关键字调用!!
如果我们没有定义构造器,则系统会自动定义一个无参的构造方法。如果已定义则编译器不会添加无参数构造方法!
与普通方法一样,构造方法也可以重载
定义一个抽象类

/*老虎类
 * */
public class Tiger {
    int age;//年龄
    String name;//名字
    String coler;//颜色
    //无参构造方法
    public Tiger(){

    }
    //有参构造方法
    public Tiger(int age,String name,String coler){
            this.age=age;
            this.coler=coler;
            this.name=name;
    }
    //方法
    public void eat(){
        System.out.println(name+"在吃");
    }
}

定义一个类接收对象

public class LiXi4 {
    public static void main(String[] args) {
    //通过new关键字创建对象是会调用老虎类的无参构造方法
        Tiger t=new Tiger();
        //通过对象名掉属性
        t.name="东北虎";
        //调方法
        t.eat();
    }
}

方法调用中的参数传递(重中之重)
基本数据类型的参数传递:不能改变参数的值
引用数据类型的参数传递:不能改变参数的值

this

package com.sxt.miaxiang;
/*测试this*/
public class Tisethis {
    String name;//名字
    String sex;//性别
    //有参构造方法
    public Tisethis(String name, String sex) {
        super();
        //代表当前对象(谁调用对象就是谁)
        this.name = name;
        this.sex = sex;
    }
    //无参
    public Tisethis(){

    }
    //方法
    public void eat(){
        System.out.println(name+"在吃饭");
    }

}

This代表当前对象自身的引用(必须new)
This可以修饰属性,区别成员变量和局部变量
This修饰方法
This修饰构造方法(必须是第一条语句)
this的作用:
this表示的是当前对象本身,
更准确地说,this代表当前对象的一个引用。

普通方法中使用this
区分类成员属性和方法的形参.
调用当前对象的其他方法(可以省略)
位置:任意

构造方法中使用this
使用this来调用其它构造方法
位置:必须是第一条语句

this不能用于static方法

static

static变量:只有一份,属于类,可以类名. Static变量
static方法: 类名. Static方法,不能出现this

用static声明的方法为静态方法
不需要对象,就可以调用(类名.方法名)

在调用该方法时,不会将对象的引用传递给它,所以在static方法中不可访问非static的成员。强调内容
如果希望加载后,对整个类进行某些初始化操作,可以使用static初始化块*。

类第一次被载入时先执行static代码块;类多次载入时,static代码块只执行一次;Static经常用来进行static变量的初始化。
是在类初始化时执行,不是在创建对象时执行

public class LianXi {
    //静态初始化代码只执行一次
    static{
        System.out.println("静态初始化代码向执行");
    }
    public static void main(String[] args) {
        System.out.println("在static后执行");
    }
}

super

static代码块:只执行一次,最早执行的(类第一次调用)

package import

包:作用
导入:import com.bjsxt.oop.*;
静态导入: import static java.lang.Math.PI;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值