Part 1
类是事物的抽象结果,对象是抽象结果的具象化实例。
类的语法:
class Demo{
//属性
//方法名
}
//类名命名规则,首字母大写,驼峰式,见名知意.
//创建类时,类名和文件名无关系,前提无权限修饰符public
如果出现类名前面有public,则注意该类名对应的.class文件
名必须一致。单个.class文件中只能有一个主类,只能有一个public权限修饰符
//属性就是这个类的所有特征,用变量的定义的方式类似一个声明变量的方式
//类的行为函数就是方法,具体实现功能的代码块。
创建对象:
语法:类名 变量名 = new 类名();
通过对象可以访问类的属性 引用.属性名
通过对象可以访问方法 引用.方法名
Part - 2
Code:
class Dog{
//名字,公母,品种,即属性
String Name;
int Gender;
String Type;
/*
属性就是这个类的所有特征,用变量的定义的方式
类似一个声明变量的方式
*/
public void lookHome(){
System.out.println("狗狗在看家");
}
public void Sleep(){
System.out.println("狗狗在睡觉");
}
}
public class TestDog {
public static void main(String []args){
Dog dog = new Dog();
dog.Name = "花花";
dog.Gender = 1;
dog.Type = "Type";
System.out.println(dog.Name);
System.out.println(dog.Gender);
System.out.println(dog.Type);
dog.lookHome();
dog.Sleep();
Dog dog1 = new Dog();
dog1.Name = "憨憨";
dog.Gender = 2;
dog1.Type = "Type";
dog1.Sleep();
dog1.lookHome();
}
}
创建对象,调用方法的内存结构流程图
PS:对象储存在堆中,引用储存在栈中,堆中的每一个对象的数据是隔离的。每一个类class文件加载到数据共享区中,jvm会解析这个类的内容,而方法是每个对象共享的,只要是又Dog类创建的对象,都可以访问Dog类中的方法。但是方法内的属性取决于对象中的对应属性。