Java 类和Static关键字

类的定义

  • 类的命名。首字母大写
  • 大括号后面没有分号

成员变量

  • Java会自动初始化成员变量但是不会自动初始化局部变量;
  • 可以在定义成员变量是直接初始化,成员变量的作用范围在整个类体

对象的创建和引用的概念

  • 在main函数里创建一个对象要使用new语句,new语句创造的东西都在堆内存中,因为堆内存可以动态分配。但是我们实际上是new了一个对该对象的引用变量(在栈内存),他指向堆内存中new出来的对象。堆内存中的对象才是真正的对象。这个引用和c/c++中的指针很类似。
  • 用图说明

构造方法

  • 构造方法没有返回值,且名字与类名相同
  • 当不写构造方法时,系统会自动添加一个默认构造方法。一旦定义了其他的构造方法,系统就不会添加默认构造方法。

方法重载

  • 返回值和名字相同,参数类型或数目不同的两个或多个方法。且编译器不会混淆。

this关键字

  • this一般出现在方法的定义中,对哪个对象调用该方法,this就指向这个对象。this是一个引用。可以处理形式参数和成员变量重名的情况:
class Test
{
        int a;
        int b;
        Test(int a,int b)              //参数和成员变量重名
        {
            this.a=a;
            this.b=b;
        }
}

static 关键字

  • static变量存在数据区,哪怕不new对象,static变量也会在数据区存在一份。
  • static声明的的变量是该类成员的公共变量。不单独属于某一个对象。只存在一份!
  • 即便没有对象也可以用“类名.”来访问静态成员。
  • main方法中的static的含义:不用new对象就可以执行main方法。
  • 静态方法不能访问非静态成员,非静态成员只能new一个对象来访问。比如在main方法中调用一个类的非静态成员就会出错。
  • 非静态方法是针对于每个对象进行调用,必须实例化类的一个对象才能调用非静态方法。
原文地址:https://www.cnblogs.com/031602523liu/p/7820715.html