//学生类
public class Student {
//属性:字段;成员变量
String name;//默认null
int age;//默认0
//方法
public void study() {
System.out.println(this.name + "在学习");
}
}
public class Application {
public static void main(String[] args) {
//使用new关键字实例化Student类,类实例化后会返回一个自己的对象
Student student1 = new Student();
Student student2 = new Student();
//分别输出两个对象的name与age 此时对象有默认值
System.out.println(student1.name);//null
System.out.println(student1.age);//0
System.out.println(student2.name);//null
System.out.println(student2.age);//0
//利用.属性给对象的属性附具体的值
student1.name = "zhangdi";
student1.age = 21;
student2.name = "qinbowen";
student2.age = 23;
//输出赋值后的对象的属性值
System.out.println(student1.name);//zhangdi
System.out.println(student1.age);//21
System.out.println(student2.name);//qinbowen
System.out.println(student2.age);//23
}
}
构造器详解
//一个类即使什么都不写,也存在一个无参构造方法
public class Person {
String name;
int age;
//无参构造方法,默认存在
public Person() {
}
//有参构造方法,无参构造的重载
public Person(String name) {
this.name = name;
}
//定义了有参构造后,无参构造不再默认存在
//一旦定义了有参构造,必须显示定义一个无参构造
//还可以定义一个多参数构造方法
public Person(String name, int age) {
this.name = name;
this.age = age;
}
}
public class Application {
public static void main(String[] args) {
//编译器根据输入的参数自动选择调用哪个构造方法
Person person1 = new Person("zhangdi");
System.out.println(person1.name);
Person person2 = new Person("qinbowen", 23);
System.out.println(person2.name);
System.out.println(person2.age);
}
}
创建对象内存分析
public class Pet {
//属性
String name;
int age;
//方法
public void shout() {
System.out.println("叫了一声");
}
}
public class Application {
public static void main(String[] args) {
Pet dog = new Pet();
dog.name = "旺财";
dog.age = 3;
dog.shout();
System.out.println(dog.name);
System.out.println(dog.age);
Pet cat = new Pet();
}
}