1、成员变量包含在对象之中。每个对象都有自己独立的成员变量,当一个对象的成员变量发生变化时,不会影响另外的对象。而静态变量独立在对象之外,所有对象共享静态变量,但是,静态变量的改变也会影响所有的对象;
示例:
Phone类对象 1
public class TelPhone {
static Double cpu;
Double screen;
Double mem;
public TelPhone() {
System.out.println("无参数构造方法执行了");
}
public TelPhone(Double cpu, Double screen, Double mem) {
System.out.println("有参数构造方法执行了");
TelPhone.cpu = cpu; //给cup赋值 也可以写this.cpu eclipse会给提示没但是也会赋值
this.screen = screen;
this.mem = mem;
}
}
类2:主要在构造方法赋值基础上,直接对TelPhone 进行属性值打印
public class PhoneTest {
public void testphone() {
//直接调用
System.out.println("testphone==="+TelPhone.cpu);
System.out.println("testphone==="+TelPhone.mem);//报错
System.out.println("testphone==="+TelPhone.screen);//报错
//实例化对象调用
TelPhone phone = new TelPhone();
System.out.println("111testphone==="+phone .cpu);
System.out.println("111testphone==="+phone .mem);
System.out.println("111testphone==="+phone .screen);
}
}
类3 Main
package com.hh;
public class InitailTelPhone {
public static void main(String[] args) {
// TODO Auto-generated method stub
TelPhone phone1 = new TelPhone(1.4d,5.0d,1.6d);
System.out.println("screen = "+phone1.screen+" , cpu = "+phone1.cpu+ " , mem = " +phone1.mem+ "打印消息发送");
PhoneTest1 phoneTest1 = new PhoneTest1();
phoneTest1.testphone();
}
}
2、静态变量在类加载时创建,他是在对象将之前的,它常驻内存,不会因为对象的产生或者销毁而发生变化;而成员变量会随着对象的产生而产生,销毁而销毁;
3、存放地址:静态变量存放在数据段中,而成员变量跟随对象会放在对空间中;
4、访问方式:成员变量只能通过对象名点的方式来访问;而静态变量可以通过对象点或者类名点的方式访问;
构造器:---构造方法也叫构造器或者构造函数----但是java的构造器不是函数,所以不能被继承
1、使用构造类的newInstance方法可以调拥有参的和私有的构造方法-----创建对象
2、构造器可以重载:
方法名相同,参数不同
构造器(创建)的执行顺序
1、父类静态常量
2、父类静态初始化块
3、子类静态常量
4、子类静态初始化块
5、父类初始化块
6、父类构造器
7、子类初始化块
8、子类构造器