创建一个对象的过程;
1,分配内存空间,并将对象成员变量初始化为0 或者 空(数值为0,对象为空,boolean为false);
2,执行属性的显式初始化
3,执行构造方法
4,返回对象的地址给相关变量
***************************
类的静态属性和方法
this 不能 在静态方法中使用,可以在构造方法中使用。
static 修饰的成员变量和方法,从属于类。
普通变量和方法从属于对象。
注意:静态方法 里不能使用非静态变量或者调用非静态方法。
***************************
静态初始化块
构造方法 用于 对象的初始化;
静态初始化 用于 类的初始化。
继承
B类 =》A类 =》 object类
在继承的时候 ,从根类( object类 )开始,先执行 父类(A类)的静态初始化块,再执行 子类(B类)的静态初始化块;
构造方法也一样的
静态块 里也不能调用普通方法和使用普通变量,只能调用静态方法和静态变量;
public class For {
void getage () {
// getname();
System.out.println("qq");
}
public static void getname() {
//login
System.out.println("www");
}
static {
getname();
}
public static void main(String[] args) {
For one = new For();
// one.getage();
one.getname();
}
}
***************************
包用package 关键字去管理
包名一般会倒着写, 这样的话就是 com.jd.oop
对应的会产生相关文件夹 com/jd/oop
然后在这个下面建类User
................................
引入 这个包
import com.jd.oop.User;
引入这个包下的所有类
import com.jd.oop.* ;
..................................
引入多个包的话 那么可能会引起 多个类重名的情况;
这种情况的话就针对这个包用最原始的方法去new 出来;
com.jd.oop.User xiaoming = new com.jd.oop.User();
.......................................
引入静态方法和静态属性
import static java.lang.Math.PI;
import static java.lang.Math.*;
***************************