咕咕咕咕咕咕咕咕咕,鸽王来喽~
类与对象
类与对象的创建
package ClassAndObject;
//一个项目只有一个main方法
public class Application {
public static void main(String[] args) {
//类的实例化
Student student1 = new Student();
student1.name = "小石榴";
student1.age = 19;
student1.study();
student1.age();
Student student2 = new Student();
student2.name = "。。。";
student2.age = 19;
student2.study();
student2.age();
}
}
//类 ≈ 结构体 + 函数
//学生类
class Student {
//属性
int age;
String name;
//方法
public void study(){
System.out.println(this.name + "在学习");
} //this不能放在静态方法里面
public void age(){
System.out.println(this.name + age + "岁了");
}
}
构造器
1. 无参构造:即使不写本身也已被定义
2. 有参构造:一旦构造了有参,想调用无参构造就必须显示无参构造的定义
3. new对象的本质就是调用构造器,因此在new的时候没有构造器会报错
4. 构造器一般用于初始化值
5. 与类名相同,无任何返回值,不是void
package Constructor;
public class Person {
//一个类即使什么都不写,本身也存在一个方法
//这就是一个构造器,与类名相同,无任何返回值,不是void
String name;
int age;
//无参构造:即使不写本身也已被定义
public Person(){
this.name = "小石榴yyds";
}
//有参构造:一旦构造了有参,想调用无参构造就必须显示无参构造的定义
public Person(String name, int age){
this.name = name;
this.age = age;
}
/*
1、new对象的本质就是调用构造器
因此在new的时候没有构造器会报错
2、构造器一般用于初始化值
*/
}
/*
public static void main(String[] args) {
Person person1 = new Person();//没有传递参数
System.out.println(person1.name);//小石榴yyds
Person person2 = new Person("xiaoshiliu",19);
System.out.println(person2.name);//xiaoshiliu
System.out.println(person2.age);
}
*/
类与对象内存分析
package StorageAnalysis;
public class Application {
public static void main(String[] args) {
Pet dog = new Pet();
dog.name = "puppy";
dog.age = 1;
dog.shout();
System.out.println(dog.age);
System.out.println(dog.name);
Pet cat = new Pet();
}
}
class Pet {
String name;
int age;
public void shout(){
System.out.println("叫");
}
}
图源B站狂神