欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

JAVA 构造方法 静态变量 静态方法

程序员文章站 2024-02-18 15:29:22
...

一、构造方法
作用:
1.出对象的属性(成员变量)进行初始化
写法:
1.构造方法的方法名与类名相同(大小写必须一样)
2.没有返回值类型,(viod都不用写)
3.没有返回值(没有return)
二、构造方法的注意事项
1.如果你没有写构造方法,那么系统会给你自动提供一个无参的构造方法
2.如果你写了一个有参的构造方法,那么系统不会再自动提供一个无参的构造方法
3.如果你写了一个有参的构造方法,那么建议你把无参的构造方法也写上

举例:

class Person{
    String name ="李四";
    int age = 208;
    // 构造方法(无参数构造方法)
    public Person() {
        name = "张三";
        age = 18;
        System.out.println("我是一个构造方法");

    }
    //写一个有参数的构造方法
    public Person(String name, int age) {
        //给对象的成员变量赋值
        this.name = name;
        this.age = age;
        }
    }

三、函数的重载:
参数不同,类型不同,顺序不同
举例

举个现实生活中的实例。假如你是个木工,我要让你制作桌子(返回值)。然后,我给了你紫檀木,你就可以制作一张紫檀桌子;我给了你黄花梨,你可以做黄花梨的桌子。这些不同材质的木料,就是参数。返回的都是桌子,但是具体使用哪个函数,就根据传入的木料不同来决定的。所以,可以根据所传递进来的不同参数,决定具体调用哪个函数。提高了函数使用的灵活性。

四、计算矩形

//  起类名的时候 尽量不要与系统重名
class Rect{
    private int height; //高
    private int weight;//宽


    //无参构造方法
    public Rect() {

    }
    //有参构造方法
    public Rect(int height,int weight) {
        this.height = height;
        this.weight = weight;
    }
//set/get方法
    public void setHeight(int height) {
        this.height = height;
    }
    public int getHeight() {
        return this.height;
    }
    public void setWeight(int weight) {
        this.weight = weight;
    }

    public int getWeight() {
        return this.weight;
    }
//成员方法
    //计算周长((高+宽)*2)
    //注意  不用给周长方法写参数,  
    //谁调用这个周长方法 计算的就是谁的周长
    public int getLength() {
        return (this.height+this.weight)*2;//计算周长
    }
    public int getArea() {
        return this.height * this.weight;//计算面积
    }
//调用main函数
public static void main(String[] args) {
        Rect rect = new Rect();
        rect.setHeight(4);
        rect.setWeight(5);
        System.out.println(rect.getArea());
        System.out.println(rect.getLength());       
    }

五、静态变量
静态变量的特点:
1.随着类的加载而加载,不依赖对象,只依赖类
2.创建优先于 对象 存在
3.是类创建出来的对象, 共享的部分
4.可以用类名 去调用

静态变量的好处:节省内存空间
静态变量和成员变量的区别:
1.所属不同
成员变量:成员变量属于对象,又叫对象变量(实例变量)
静态变量:属于类的 又叫类变量
2.内存中的存储位置不同
成员变量:存储在堆内存中
静态变量:存储在方法区的静态区中
3.加载到内存中的时机不同(生命周期不同)
成员变量:随着对象的出生而出生,随着对象的死亡而死亡
静态变量:随着类的加载而存在
4.调用方法不同
成员变量:只能使用 对象 区调用 对象.成员变量
静态变量:可以用对象调用但是不推荐
一般使用类名区调用 类名.静态变量

内存表现步骤:::
1.类加载到方法区
2.加载到方法区的同时,静态变量被加载到方法区的静态区
3.main 函数入栈区
4.在堆内存中 创建 对象
5.把地址赋值给main 函数 对象保存
6.main 函数出栈
7.程序结束
附图:
JAVA 构造方法 静态变量 静态方法

六、静态方法
静态方法调用:
如果仅仅需要使用类中成员方法,这时可以把成员方法写成静态方法,在调用的事后,直接使用类名去调用,方便。一般工具类都是使用静态方法。
查看系统类Math 发现,系统把构造方法私有化,私有化后,外界无法创建,Math这个类的对象。
什么事后可以构造方法私有化?
当一个类所有的属性 和 方法 都是静态的
可以私有化构造方法,因为根本就不需要对象。