一.类的定义格式
1.1定义一个狗类
class Dog{
public String name;
public String color;
public static String food="狗粮";
public void barks(){
System.out.println("汪汪");
}
public void wag(){
System.out.println("摇尾巴");
}
public static void eat(){
System.out.println("吃"+Dog.food);
}
}
1.2注意
1.一般一个文件中只定义一个类 2.main方法所在的类一般要使用public修饰 3.public修饰的类名必须要和文件名相同 4.public修饰的类名不能随便修改
二.类的实例化
类 类似定义了一种新的类型,用类类型创建对象的过程叫实例化
2.1一个简单的类
class Dog{
public String name;
public String color;
public static String food;
public Dog(){
}
public Dog(String name,String color,String food){
this.name=name;
this.color=color;
Dog.food=food;
}
public void barks(){
System.out.println("汪汪");
}
public void wag(){
System.out.println("摇尾巴");
}
public static void eat(){
System.out.println("吃"+Dog.food);
}
}
public class BlogDemo1 {
public static void main(String[] args) {
Dog dog3 = new Dog("旺财","炫彩金","黄金狗粮");
Dog.eat();
dog3.barks();
dog3.wag();
Dog dog1 = new Dog();
dog1.name="阿黄";
dog1.color="黄";
Dog.eat();
dog1.barks();
dog1.wag();
Dog dog2 = new Dog();
dog2.name="大黑";
dog2.color="黑色";
Dog.eat();
dog2.barks();
dog2.wag();
}
}
1.类中 方法外的变量 可以不初始化值,未初始化的值有其默认值 (具体的默认值可以见我java数组的表),而方法中的变量必须有其初始值
2.2构造函数
1.构造方法(也称为构造器)是一个特殊的成员方法,名字必须与类名相同,在创建对象时,由编译器自动调用,并且在整个对象的生命周期内只调用一次。 2. 构造方法:名字与类名相同,没有返回值类型,设置为void也不行,一般情况下使用public修饰,在创建对象时由编译器自动调用,并且在对象的生命周期内只调用一次 3.类中没有定义任何构造方法,编译器会默认生成一个不带参数的构造方法。 但如果定义构造方法后,编译器不会生成一个不带参数的构造方法,类中只有自己定义的构造方法
2.3对象的内存模型
对象是引用类型,内存类型和数组很相似,大家可以去看看博主的数组的内存空间内容。 1.声明对象是的内存模型 当用类声明一个对象时,如 Dog dog; dog的内存空间还没有任何数据,这时的dog是一个空对象,空对象不能使用。即 dog的值为null。 2.为对象分配变量后的内存模型 eg: dog = new Dog(); 此时 name 和 color 这些实例变量作为对象的属性在堆上开辟空间, new运算符将和类的构造方法计算一个叫引用的值赋值给 dog
|