java对象的创建和使用|java第一个程序哈哈哈哈哈

.面向对象的生命周期:
OOA 面向对象的分析
OOD 面向对象的设计
OOP 面向对象的编程
先设计一个类(还没从C++里出来 当然也没有彻底进去哈哈哈哈)

public class Student
{
    
    
	//姓名
	String name;
	//学号 
	int no;// 只有后面创造了对象,这些内存才会存在
	int age;
	String addr;
	boolean sex;
	//如果加了一个static  那么则这个变量属于类,属于所有对象共有
	//这里不执行所以不用+main函数

}

//通过一个类可以实例化N个对象
//实例化对象语法: new 类名()
//new是java语言当中的一个运算符
//new运算符的作用是创建对象,在JVM堆内存中开辟新的内存空间
//栈内存(局部变量):方法代码片段执行的时候,会给该方法分配内存空间,在栈内存中 压栈
//堆内存:new的对象在堆内存中存储

//Student 是一个引用对象
//s是一个局部变量,在栈内存中存储 称为引用
//对象不赋值的话有默认值
//对象是new运算符在堆内存中开辟的内存空间称为对象
//引用是一个变量,只不过这个变量用来保存另一个java对象的内存地址
//java没有指针 所以只能通过引用去读取堆内存中对象的内部实例对象
在这里插入图片描述
java里没有要求掌握指针,然后类的对象存储区在堆内存中,
类没有赋值时,都会使用默认值

Boolean false
Char '\u0000'(null)
byte (byte)0
short (short)0
int 0
long 0L
float 0.0f
double 0.0d

Student s=new Student();
s是一个 引用用来保存Student的地址

public class OOTest01
{
    
    
	public static void main(String[] args){
    
    
		//通过一个类可以实例化N个对象
		//实例化对象语法: new 类名()
		//new是java语言当中的一个运算符
		//new运算符的作用是创建对象,在JVM堆内存中开辟新的内存空间
		//栈内存(局部变量):方法代码片段执行的时候,会给该方法分配内存空间,在栈内存中 压栈
		//堆内存:new的对象在堆内存中存储

		//Student 是一个引用对象
		//s是一个局部变量,在栈内存中存储   称为引用  
		//对象不赋值的话有默认值
		//对象是new运算符在堆内存中开辟的内存空间称为对象
		//引用是一个变量,只不过这个变量用来保存另一个java对象的内存地址
		//java没有指针  所以只能通过引用去读取堆内存中对象的内部实例对象
		Student s=new Student();

		int stuNo=s.no;
		int stuAge=s.age;
		String stuName=s.name;
		boolean stuSex=s.sex;
		String stuAddr=s.addr;

		System.out.println("学号 = "+stuNo);
		System.out.println("姓名 = "+stuName);
		System.out.println("性别 = "+stuAge);
		System.out.println("地址 = "+stuAddr);

		System.out.println("分割线————————^_");

		System.out.println("学号 = "+s.no);
		System.out.println("姓名 = "+s.name);
		System.out.println("性别 = "+s.age);
		System.out.println("地址 = "+s.addr);

		System.out.println("分割线————————^_");
		stuNo=87;
		stuAge=24;
		stuName="jake";
		stuSex=true;
		stuAddr="杭州";

        System.out.println("分割线————————^_");
        System.out.println("学号 = "+stuNo);
		System.out.println("姓名 = "+stuName);
		System.out.println("性别 = "+stuAge);
		System.out.println("地址 = "+stuAddr);

	}
}

这里还是要注重对于内存空间的理解
JVM有三个主要的内存区:
方法区内存
堆内存
栈内存
因为方法代码片段属于.class字节码的一部分,字节码文件在加载的时候,将其放到了方法区中。所以方法区内存最先有数据
在这里插入图片描述
后面程序运行main函数
在这里插入图片描述

main函数又有各种变量
Student s=new Student();
s是类对象的一个引用,用来保存对象的地址

new Student()它在堆内存中开辟一个对象 因为没有指针 所以java主要用引用来指向地址。
在这里插入图片描述
局部变量在栈内存中存储 成员变量中的实例变量在堆内存的java对象内部存储 实例变量是一个对象一份,100个对象有100份

正是因为实例变量存储在对象中 所以不可以用 类.实例变量 来访问

猜你喜欢

转载自blog.csdn.net/weixin_46096297/article/details/114271311