类的定义:
对象实例化
- 类的实例化就是创建一个对象:
class Dog{ String name; int foot=4; Dog(){//这是一个构造函数 this.name="旺财"; } void hello() { System.out.println("hello,this is a dog"); } static void static_hello() { System.out.println("hello,this is a dog too"); } } public class Demo { public static void main(String args[]) { Dog d=new Dog(); System.out.println(d.foot);//4 d.hello();//hello,this is a dog d.static_hello();//hello,this is a dog too Dog.static_hello();//hello,this is a dog too } }
成员变量:
成员变量的有效范围
- 成员变量在整个类范围内有效,与变量声明的位置无关。方法中的局部变量从声明它的位置开始生效,并且只在方法体内有效。
- 当局部变量跟成员变量同名时,如果想特别的使用成员变量,可以使用“this.变量名”
- 成员变量有默认值,而局部变量没有默认值。
成员变量的赋值:
- 可以使用构造函数来对一些成员变量初始化
- 如果成员变量不是私有的,也可以直接取得变量名来赋值,比如dog.age=18
静态变量、方法与实例变量、方法:
根据变量、方法是否有static修饰可以分为实例变量,实例方法和静态变量(类变量),静态方法(类方法)
-
静态变量,静态方法:
-
被static修饰的成员的特点:
-
随着类的加载而加载,优先于对象存在,静态成员内存位于方法区
-
被所有对象所用享【所以可称为类变量或类方法】
-
可以直接类名调用
-
静态方法只能访问静态成员
-
静态方法中不可以写this,super关键字
-
-
-
实例变量、实例方法:
- 实例变量、实例方法是对象的变量和方法,对象操作变量或方法也只是操作自己的变量或方法,不会影响其他对象。
实例变量\方法跟静态变量\方法的区别好比:“泰迪狗类”比如有一个共有属性“狗种类名”,那么这个属性应该是所有泰迪狗都有的,并且是泰迪狗共享的,如果某一天人类想改泰迪狗的种类名称,那么应该是所有泰迪狗都改的(静态的);而每一只泰迪狗都有自己的主人,这是由每一只狗自身决定的,所以这是特有属性,即使这只狗换了主人,也不会影响别的狗。(实例的)