1. java内存的主要划分
2. OOTest02.java 的内存划分
public class OOTest02{ public static void main(String[] args){ Student zhangsan=new Student(); zhangsan.id=1001; zhangsan.name="张三"; zhangsan.sex=true; zhangsan.address="北京"; zhangsan.age=21; System.out.println("id="+zhangsan.id); System.out.println("name"+zhangsan.name); System.out.println("sex="+zhangsan.sex); System.out.println("address="+zhangsan.address); System.out.println("age="+zhangsan.age); } } class Student{ int id; String name; boolean sex; String address; int age; }
第一步:执行main方法,将main方法压入栈,然后new Studentd对象
Student zhangsan=new Student();
第二部: 对student赋值
zhangsan.id=1001; zhangsan.name="张三"; zhangsan.sex=true; zhangsan.address="北京"; zhangsan.age=21;
3. 不使用new关键字的问题
public class OOTest02{ public static void main(String[] args){ \ Student zhangsan=new Student(); Student zhangsan=null; zhangsan.id=1001; zhangsan.name="张三"; zhangsan.sex=true; zhangsan.address="北京"; zhangsan.age=21; System.out.println("id="+zhangsan.id); System.out.println("name"+zhangsan.name); System.out.println("sex="+zhangsan.sex); System.out.println("address="+zhangsan.address); System.out.println("age="+zhangsan.age); } } class Student{ int id; String name; boolean sex; String address; int age; }
抛空指针异常,因为zhangsan没有指向任何对象,所以其地址为null,我们就使用student的属性,这样就导致了空指针异常。
Exception in thread "main" java.lang.NullPointerException
4. 参数传递
值传递
public class OOTest03{ public static void main(String[] args){ int i=10; method1(i); System.out.println(i); } public static void method1(int temp){ temp=1; } }
应用传递
/* 面向对象的封装性。 */ public class OOTest04{ public static void main(String[] args){ Student zhangsan=new Student(); zhangsan.id=1001; zhangsan.name="张三"; zhangsan.sex=true; zhangsan.address="北京"; zhangsan.age=21; method1(student); System.out.println("id="+zhangsan.id); System.out.println("name"+zhangsan.name); System.out.println("sex="+zhangsan.sex); System.out.println("address="+zhangsan.address); System.out.println("age="+zhangsan.age); public static void method1(Student temp){ temp.name="李四"; } } } class Student{ int id; String name; boolean sex; String address; int age }