类、属性、对象
1.为什么需要类
有三只猫,
一只名字叫小白,今年2岁,白色。
一只叫小黑,今年3岁,黑色。
还有一只叫小花,今年4岁,花色。
如何在代码中,方便管理这些信息。
假设有100只猫呢?如果有一个模板,就方便很多了。
2.类的定义方法
3.属性(成员变量/字段/Field)的概念
属性定义语法与变量一致,只是多了访问修饰符
访问修饰符 属性类型 属性名
属性类型可以是任意类型,可以是基本数据类型和引用类型
属性如果没有初始化,有默认值,与数组一致
4.对象的创建(实例化)
Cat cat; // 声明
cat = new Cat(); // 开辟空间,把地址赋值给cat
5.类与对象的概念
6.类相当于自定义数据类型
7.类外面赋值和获取对象属性
8.构造函数的概念
9.案例
创建一个文件Cat类
public class Cat {
// 定义类,创建模板
String name = null;
int age = 0;
String color = null;
}
在测试文件中写
import java.util.ArrayList;
public class Hello {
public static void main(String[] args) {
Cat cat;//声明
cat = new Cat();//开辟空间,把地址赋值给cat
cat.name = "小白";
cat.age = 2;
cat.color = "白色";
System.out.println(cat.name);
System.out.println(cat.age);
System.out.println(cat.color);
Cat cat2;//声明
cat2 = new Cat();//开辟空间,把地址赋值给cat
cat2.name = "小黑";
cat2.age = 3;
cat2.color = "黑色";
System.out.println(cat2.name);
System.out.println(cat2.age);
System.out.println(cat2.color);
}
}
创建一个文件Cat类(在类中右键idea -> Generate... ->Constructor,会自动构造函数)
public class Cat {
// 定义类,创建模板
String name = null;
int age = 0;
String color = null;
public Cat(String name, int age, String color) {
this.name = name;
this.age = age;
this.color = color;
}
}
在测试文件中写
public class Hello {
public static void main(String[] args) {
Cat cat1 = new Cat("小白", 2, "白色");
Cat cat2 = new Cat("小黑", 3, "黑色");
System.out.println(cat1.name);
System.out.println(cat2.name);
}
}
创建一个文件Cat类
public class Cat {
// 定义类,创建模板
String name = null;
int age = 0;
String color = null;
}
在测试文件中写
public class Hello {
public static void main(String[] args) {
Cat a = new Cat();
a.age = 30;
a.name = "CZW";
Cat b;
b = a;
System.out.println(b.name); // CZW
b.age = 200;
b = null;
System.out.println(a.age); // 200
System.out.println(b.age); // 报错,空指针异常,NullPointerException
// 如果需要不影响原有的那就重新new一个
Cat c = new Cat();
c.name = a.name;
c.age = a.age;
a.age = 300;
System.out.println(c.age); // 200
System.out.println(a.age); // 300
}
}