初学java

初学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()) ;		
	}
	}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‘’:表示化变量没有初始

编译只检测代码的语法错误

 

 

 

 

 

 

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值