2、 对象实例化之后才可以使用,如果使用了没有实例化(开辟了堆内存空间的)的对象则会出现NullPointerException。
3、 引用传递和垃圾的产生
class { String name; int age; void say () { System.out.println("Hello"); } void print() { say(); } } public class ooDemo01 { public static void main (String args[]) Person p=new Person (); p.print(); } |
class Person { String name; int age; void say () { System.out.println("Hello"); } void print() { //如果特别想表示是在本类中的方法,我们可以在前面加上this. this.say(); } } public class ooDemo01 { public static void main(String args[]) { Person p=new Person(); p.print(); } } |
//命名要求哈~
private String name; public void setName(String n) { name=n; } public String getName() { return name; } |
构造方法定义:构造方法是为类中的属性初始化的。
对象产生的格式:类名称 对象名称 = new 类名称() ;
使用构造方法为类中的属性初始化。
如果一个类中没有明确声明任何一个构造方法,则肯定自动生成一个无参的什么都不做的构造方法,相反如果一个类中已经明确的声明了一个构造方法,则不会再自动生成构造,也就是说一个类中至少保持有一个构造方法。
{
//员工号
private String empno;
//姓名
private String name;
//薪水
private float salary;
//部门
private String dept;
//无参的构造方法一般都是写在第一个哈~~
public Employee()
{
}
public Employee(String no)
{
this.setEmpno(no);
this.setName("无名氏");
this.setSalary(0.0f);
this.setDept("未定");
}
public Employee(String no,String na)
{
this.setEmpno(no);
this.setName(na);
this.setSalary(1000.0f);
this.setDept("后勤");
}
public Employee(String no,String na,float sa,String d)
{
this.setEmpno(no);
this.setName(na);
this.setSalary(sa);
this.setDept(d);
}
//显示信息
public void showMsg()
{
System.out.println("员工信息为:");
System.out.println("\t|- 员工号:"+empno);
System.out.println("\t|- 姓名:"+name);
System.out.println("\t|- 薪水:"+salary);
System.out.println("\t|- 部门:"+dept);
}
//代码之后必须有setter和getter
public void setEmpno(String a)
{
empno=a;
}
public void setName(String n)
{
name=n;
}
public void setSalary(float s)
{
if (s>=0.0f)
{
salary=s;
}
}
public void setDept(String d)
{
dept=d;
}
public String getEmpno()
{
return empno;
}
public String getName()
{
return name;
}
public float getSalary()
{
return salary;
}
public String getDept()
{
return dept;
}
}
//主类
public class ooDemo10
{
public static void main(String args[])
{
Employee e1=new Employee("e001","王乾");
Employee e2=new Employee("e002","王乾",10000.0f,"开发部");
e1.showMsg();
e2.showMsg();
}
}
· 对外不不可见,属性前加入private关键字
· 通过setter和getter方法设置和取得封装属性
2、构造方法
· 与类名称相同,无返回值类型
· 在对象实例化(new)的时候被自动调用
· 构造方法可以重载
· 每个类中至少有一个构造方法
3、匿名对象:只使用一次的对象。
xjd0316 2015-06-03
w2521065364 2013-10-21
yellowbaby 2011-10-27
圆圆圈圈 2011-05-15
bolo 2010-12-08
feichang 2009-04-09
redking 博主 回复了 未知 2009-04-09
coldraining 2009-03-13
txmjs 2008-12-20
redking 博主 回复了 txmjs 2008-12-20