day07(创建对象,static)

来源:互联网 发布:金山在线数据恢复收费 编辑:程序博客网 时间:2024/06/06 04:41

一.创建一个对象的步骤

Student s = new Student();

  • 1.Student.class加载进内存
  • 2.声明一个Student类型引用s
  • 3.在堆内存创建对象,
  • 4.给对象中属性默认初始化值
  • 5.属性进行显示初始化
  • 6.构造方法进栈,对对象中的属性赋值,构造方法弹栈
  • 7.将对象的地址值赋值给s

二.static关键字

1.案列说明
  人类:Person。每个人都有国籍,中国。(可不可以使用一个)
2.使用方法
  a.类的成员变量
  b.类的成员方法
  c.类的静态块,static{ }
3.static关键字的特点
  a:随着类的加载而加载
  b:优先于对象存在
  c:被类的所有对象共享
    举例:咱们班级的学生应该共用同一个班级编号。
    其实这个特点也是在告诉我们什么时候使用静态?
    如果某个成员变量是被所有对象共享的,那么它就应该定义为静态的。
    举例:
      饮水机(用静态修饰)
      水杯(不能用静态修饰)
    共性用静态,特性用非静态
  d:可以通过类名调用
    其实它本身也可以通过对象名调用。
    推荐使用类名调用。
    静态修饰的内容一般我们称其为:与类相关的,类成员
4.static的注意事项
  a:在静态方法中是没有this关键字的
    如何理解呢?
      静态是随着类的加载而加载,this是随着对象的创建而存在。
    静态是随着类的加载而加静态是随着类的加载而加静态比对象先存在。
  b:静态方法只能访问静态的成员变量和静态的成员方法
    静态方法:
      成员变量:只能访问静态变量
      成员方法:只能访问静态成员方法
    非静态方法:
      成员变量:可以是静态的,也可以是非静态的
      成员方法:可是是静态的成员方法,也可以是非静态的成员方法。
    简单记:
      静态只能访问静态。
  切记:static不能修饰局部变量,因为毫无意义

public class Test {    public int aMethod() {        static int i = 0;        i++;        return i;    }    public static void main (String args[]) {        Test test = new Test();        test.aMethod();        int j = test.aMethod();        System.out.println(j);    }}//输出结果是什么? 编译失败

5.静态变量和成员变量的区别
静态变量也叫类变量 成员变量也叫对象变量
  A:所属不同
    静态变量属于类,所以也称为为类变量
    成员变量属于对象,所以也称为实例变量(对象变量)
  B:内存中位置不同
    静态变量存储于方法区的静态区
    成员变量存储于堆内存
  C:内存出现时间不同
    静态变量随着类的加载而加载,随着类的消失而消失
    成员变量随着对象的创建而存在,随着对象的消失而消失
  D:调用不同
    静态变量可以通过类名调用,也可以通过对象调用
    成员变量只能通过对 象名调用
6.工具类
  a.制作一个工具类
    ArrayTool
      a.获取最大值
      b.数组的遍历
      c.数组的反转
  b.对工具类加入文档注释
  c.通过javadoc命令生成说明书
    @author 提取作者内容
    @version 提取版本内容
    javadoc -d 指定的文件目录 -author -version ArrayTool.java
    @param 参数名称//形式参数的变量名称@return 函数运行完返回的数据

原创粉丝点击