初学java

来源:互联网 发布:js select disabled 编辑:程序博客网 时间:2024/05/17 10:07
初学Java简单类(9.26)

1.堆和栈
堆内存空间:保存真正的数据(保存对象属性信息)
栈内存空间:保存堆内存的地址(具有堆内存的操作权)
eg:
第一种情况
Person per = null;表示就是为栈内存保存的per的地址(假设为0x0001),还没有开辟内存,堆内存中没有per的属性信息;
Person per = new Person();表示就是为栈内存保存的per的地址(假设为0x0001),此时会在堆内存中开辟一个新的空间;对应的成员属性均为初始值(String类 为null,int类为0,double类0.0)
per.name = “张三”;表示为堆内存中存放name=“张三”;
per.age = 18;表示堆内存中存放age =18;
引用传递:一个堆内存可以被多个栈内存指引,同一个栈内存只能保存一个堆内容(一个栈存一个地址)
第一种情况
per1.name = “张三”;
per1.age = 18;
Person per2 = per1;
per2.name = “李四”;
上述则表示的意思为:per1和per2分别为两个栈内存,Person per2 = per1;表示把per1的堆内存内容也给per2用,则输出内容为(李四,18)
第二种情况
Person per1 = new Person();per1.name  = “张三”;per1.age = 18;
Person per2 = new Person();per2.name= “李四”;per2.age = 20;
per2=per1;
上述表示为:将per1的堆内容给per2;但是per2中有对应的堆内容,则此时必须先将per2的堆内容断开。然后在将per2指引到per1的堆内容,此时原来per2中堆内容就是输垃圾内容,会被java中GC处理掉。
2.描述一个对象
一般规则:
1.类名称可以明确的描述出该事物
2.类中的属性必须使用private,必须使用getter和setter(private只有当前类可以调用其中成员属性,也就是说只以下代码class中才能调用
3.类中可以有多个构造方法,但必须有一个无参的构造方法
4.类中的所有方法,不能使用输出语句,只能在主方法中使用
5.类中提供一个放回完整信息的方法get Info()
其中getter和setter(使用private必须要用到)
getter:主要用于属性内容的取得
setter:设置和更改的属性内容
(一个对象只能new一次)
类名称 对象名称 = new 类名称();
 一般样式
  class 类名称{}
  成员属性;(一个对象只能new一次)
  构造方法;(必须有一个无参的构造方法)
  一般方法;
class Student {private String name;private int age;private String number ;private String sex ;private String deparment ;private String hometown ;public Student() {}//每个java简单类必须包括一个无参的构造方法public Student(String name,int age, String number,String sex,String deparment,String hometown){setName(name);setAge(age) ;setNumber(number) ;setSex(sex) ;setDeparment(deparment) ; setHometown(hometown) ; }public void setName(String na) {name = na;}public void setAge(int a){//定义属性的方法   有参(void)age = a ;}public void setNumber(String n){number = n ;}public void setSex(String s){sex = s ;}public void setDeparment(String d){deparment = d ;}public void setHometown(String h){   hometown = h ;}public String getName() {return name;}public int getAge() {return age ;}public String getNumber() {return number ;}public String getSex() {        return sex ; }public String getDeparment() {return deparment ; }public String getHometown() {return hometown ; }public  String getInfo() {return "name ="+name+"\n"+       "age = " + age + "\n" +       "number= " + number + "\n" +       "sex = " + sex + "\n" +"deparment = "  + deparment + "\n" +"hometown = " +  hometown ;}       }public class StudentDemo {public static void main(String args[] ) {System.out.println(new Student("李四",20,"14144203811","男","物电学院","陕西").getInfo()) ;}}
一般会遇到一些错误
”NullPointerException” :只出现在引用数据类型(数组,类,接口)
”Initiaialized‘’:表示变量没有初始
编译只检测代码的语法错误