Java 对象和类
对象:对象是类的一个实例,有状态和行为。
类:类是一个模板,它描述一类对象的行为和状态。
构造方法
每个类都有构造方法。如果没有显式地为类定义构造方法,Java编译器将会为该类提供一个默认构造方法。如果自己写了构造方法系统默认的不在起作用。构造方法的名称必须与类同名,一个类可以有多个构造方法。
package dog;
public class Dogs {
String name;
int health;
int love;
String strain;
public Dogs() {
//系统默认构造方法。
}
public Dogs(int health,int love,String name,String strain) {
//参数数据类型或参数个数不同
}
public Dogs(String name,int health,int love,String strain) {
this.name=name;
this.health=health;
this.love=love;
this.strain=strain;
}
}
package dog;
import java.util.Scanner;
public class TestDogs {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner input = new Scanner(System.in);
System.out.print("请输入狗狗名字:");
String name=input.next();
Dogs dogs=new Dogs(name,100,0,"潘多拉");
Dogs dogs1=new Dogs();
}
}
static修饰与非static修饰的区别
static、非private修饰 | 非static、private修饰 | |
---|---|---|
属性 | 类属性、类变量 | 实例属性、实例变量 |
方法 | 类方法 | 实例方法 |
调用方式 | 类名.属性 类名.方法() 对象.属性 对象.方法() | 对象.属性 对象.方法() |
归属 | 类 | 单个对象 |
package dog;
public class Staticdomc {
// static可以修饰属性、方法、代码块
// 静态成员由类名直接调用,也可以由对象调用。静态变量是类级别的,只开辟一个空间。
// 当类被首次调用时,静态成员即被初始化
// 静态方法只能调用静态属性
// 非静态成员可以直接就调用静态成员
public static int id;
public String name;
public static void show() {
System.out.println("这是静态的show方法" + id);
}
static {
System.out.println("这是static静态块...");
}
public void Staticdomc() {
System.out.println("这是无参构造方法...");
}
public static void main(String[] args) {
// TODO Auto-generated method stub
Staticdomc.id = 10;
Staticdomc sd = new Staticdomc();
sd.id = 20;
Staticdomc sd2 = new Staticdomc();
sd2.id = 30;
System.out.println(Staticdomc.id);
System.out.println(sd.id);
System.out.println(sd2.id);
Staticdomc.show();
}
}
结果是:
这是static静态块…
30
30
30
这是静态的show方法30
所以说
static方法就是没有this的方法。在static方法内部不能调用非静态方法,反过来是可以的。而且可以在没有创建任何对象的前提下,仅仅通过类本身来调用static方法。这实际上正是static方法的主要用途。