构造方法

类的书写顺序

1.成员变量
2.构造方法
3.set/get方法
4.成员方法

例:

class Car{ 
 private String name; 
 private String color;
//构造方法
public Car() {
    //成员变量初始化
    name = "奥迪双钻";
    color = "白色";
    System.out.println("我是无参构造方法");
}

//有参的构造方法 (创建对象时 给成员变量初值)
//构造方法的重载
public Car(String name,String color){
    this.name = name;
    this.color = color;
    System.out.println("我是有参构造方法");
}
public void setName(String name) { 
 this.name = name; 
 } 
 public String getName() { 
 return name; 
 } 
 public void setColor(String color) { 
 this.color = color; 
 } 
 public String getColor() { 
 return color; 
 } 
 public void intruducte() { 
 System.out.println(name + color); 
 } 
 } 
 public static void main(String[] args) {
//构造方法是系统调用的
    //注意:创建一个对象 构造方法就会调用一次
    Car car1 = new Car();
    car1.intruducte();

    //系统会根据传入的参数 来选择调用具体的构造方法
    Car car2 = new Car("保时捷","亮黑");
    car2.intruducte();
    }

构造方法:对成员变量 进行初始化
写法:
关键词 类名(){}
注意:构造方法没有返回值 并且也不提供书写返回值的位置

//如果没有无参构造方法,系统会提供一个无参的构造方法
//如果已经有了有参的构造方法,系统就不会提供无参的构造方法
//注意:一般写类时 都会书写有参和无参的构造方法

静态变量

静态变量(共享变量 被所有对象所共享)

关键词 static(修饰成员变量)

静态变量好处: 节省内存空间

静态变量的调用

1.使用对象.变量名调用
2.直接使用类名调用(推荐)
系统推荐使用类名调用是为了更好的区别 成员变量 和 静态变量

成员变量 和 静态变量的区别

1.调用方式

成员变量:对象调用
    静态变量:对象 和 类名(推荐) 都能调用

2.内存中的表现

成员变量:在堆内存中
    静态变量:在方法区的静态区

3.所属不同

成员变量:属于对象的
    静态变量:属于类的(不依赖对象的创建)

4.生命周期

成员变量:随着对象的创建而创建,随着对象的销毁而销毁
    静态变量:随着类的加载而创建,在程序结束时销毁

注意:类是优先对象存在的

代码在内存中的运行过程

1.加载main函数所在类的 .class文件

Demo04.class 加载进入方法区

2.创建AVGril对象

3.在堆内存中创建AVGril对象

该内存中保存了 成员变量

把系统分配的内存地址 返回给 gril1 保存

4.通过gril1 赋值成员变量

5.通过类名 赋值 静态变量

6.introduction方法 入栈打印出栈

7.main执行完毕

8.程序结束

java 如何在对象中添加属性 java添加成员方法_静态方法

静态变量(类变量)
静态方法(类方法)

静态方法(也是进栈执行)
 跟静态变量一样 被加载到方法区的静态区
 静态变量 也是随着类的加载而加载

 静态方法中不能使用成员变量
 静态方法被加载时 还没有对象产生
  注意:静态方法中不能使用this关键字

静态方法的调用
1.对象调用(不推荐)
2.直接使用类名调用(推荐)

成员方法中可以调用 成员方法 和 静态方法
 静态方法中不能调用 成员方法 但是可以调用静态方法

 总结:静态的只能使用静态的

main解析

public 表示方法的使用权限 公开的
static 系统(JVM)可以直接使用类名调用main方法
main 不是关键字 但是名字不能换

JVM运行代码时 就是找叫类中main这个静态方法

String[] args 可以接受用户的输入

整个main所有的词 都不能换 只有 args名可以改