8. 有参无参构造方法,什么是重载,重载的定义,

1 什么是构造方法

什么是构造方法呢?

构造方法是一种特殊的方法,它是一个与类同名的方法。对象的创建就是通过构造方法来完成,其功能主要是完成对象的初始化。当类实例化一个对象时会自动调用构造方法。构造方法和其他方法一样也可以重载。

无参构造方法

当创造一个类的时候,里面会有一个默认的无参构造方法
举个栗子:

    public Person(){
        System.out.println("我是构造方法");
    }

    public static void main(String[] args){
        Person a = new Person();
    }
    ```
![在这里插入图片描述](https://img-blog.csdnimg.cn/62549bf02deb40e7a0bdbdc1b04d7808.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA5rGf5Y2X5rKh5pyJ5pif5pif,size_20,color_FFFFFF,t_70,g_se,x_16)
    可以得到验证 ,无参的方法是默认就有的,并且是用来创造对象时会默认调用


那什么是有参的构造方法呢?

有参,顾名思义就是里面传了参数的构造方法

举个栗子:

public class Person {
    String name;
    int age;


	public Person(){
	        System.out.println("我是无参构造方法");
	    }
	public Person(String name){
	      this.name = name;
	      System.out.println("我是有参构造"+name);
	   }

    public static void main(String[] args){
//        无参
        Person a = new Person();
//        有参
        Person b = new Person("我是希希");

    }
}

在这里插入图片描述

有参的构造方法在new对象的时候是需要传参数的
>Person b = new Person("我是希希");

这句话就是来传参数,其实这就是重载,下面我们来说下重载:

2 重载(overload)

2.1 什么是重载?

重载的定义,就是在同一个类中的方法的基础上去扩展,记住方法名字必须一样,里面的参数可以不同,个数,返回的类型也可以不同,上面的构造方法就是特殊的重载。

举个栗子:

    public void say(){
        System.out.println("说");
    }

    public void say(int a){
        System.out.println(a);
    }

这是一个没有返回值的方法的重载

下面是一个有返回值的方法的重载:
栗子:

public String sayyou(){
        return "你";
    }
public int sayyou(int b){
        return b;
    }

简单吧! 这就是重载

3 变量

3.1 静态变量

静态变量是属于类的,也叫类变量。
普通变量(实例变量)属于对象的,
静态变量可以通过类名访问
实例变量需要通过对象访问

public class Class02 {
/**
 *@desc 变量
 *
 * @author  wangxihao
 * @email wangxh0108@163.com
**/
    static int age;
    String name;

    public static void main(String[] args){

//        通过类名赋值
        Class02.age=18;

        Class02 class02 = new Class02();

        System.out.println(age);
    }

并且 静态变量是类共享的变量
举个栗子:

package PersonObject;

/**
*@desc 变量
*
* @author  wangxihao
* @email wangxh0108@163.com
**/
public class Class02 {

   static int age;
   String name;
   static  int ticket = 100;
   public void safe(){
       this.ticket = ticket-1;
   }

   public static void main(String[] args){
       Class02 class02 = new Class02();
       class02.safe();
       System.out.println("剩余"+ticket);
       Class02 class03 = new Class02();
       class03.safe();
       System.out.println("剩余"+ticket);

   }
}

由此可见,int的ticket是共享的,对于class02和class3是共享的。卖出来的票都会减一。

4 静态方法

静态方法是由static修饰的方法
举个栗子:

package PersonObject;

/**
 *@desc 变量
 *
 * @author  wangxihao
 * @email wangxh0108@163.com
**/
public class Class02 {
    public static void say02(){
        System.out.println("这是静态方法");
    }

    public static void main(String[] args){

        Class02 class02 = new Class02();
        class02.say01();
    }
}

4.1 非静态方法可以调用静态方法

 public void say01(){
        System.out.println("这不是静态方法");
        say02();
    }

    public static void say02(){
        System.out.println("这是静态方法");
    }


//也可以调用静态变量 普通方法都可以调
   public void say01(){
        System.out.println("这不是静态方法");
        ticket=50;
        name="nihao";
        say02();
    }

    public static void say02(){
        System.out.println("这是静态方法");
        ticket=20;
//        say01();
 //       name:
    }

4.2 静态方法没办法调用非静态方法

在这里插入图片描述

对于变量的调用
在这里插入图片描述

4.3总结三句话

非静态的方法对于比变量都可以调,对于方法也都可以调用。
静态方法只能调用静态变量和静态方法

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

杵意

谢谢金主打赏呀!!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值