构造方法.4

构造方法
类名称 对象名称=new 类名称();

类名称:主要是用来表示对象的类型;
对象名称:相当于是一个变量,用于标记对象的操作
new:表示开辟一个新的堆内存空间

类名称();实际上这个调用就是构造方法        


构造方法的定义:构造方法的名称要与类名称保持一致,而且构造方法没有返回值类型的声明

构造方法的是再类之中定义,并且关键字new为对象实例化的时候默认进行的调用

class Passway
{
public Passway() 
{
System.out.println("****");
}
}
public class Way {
public static void main(String[] args) {
Passway dg=new Passway();
}
}

构造方法是可以传递指定的参数

package way;
class Passwaya
{
private String name;
private int age;
public Passwaya() 
{
}
public Passwaya(String a) 
{
this.setName(a);
//name=a;
}
public Passwaya(String a,int b) 
{
/*name=a;
age=b;*/
//构造方法调用本类的普通方法,严格可以用关键字this
this.setName(a);
this.setAge(b);
}
public void setName(String n) 
{
name=n;
}
public void setAge(int m)
{ if(m>=0 && 100>=m) {
age=m;
}
}
public String getName() 
{
return name;
}
public int getAge()
{

return age;
}
public void tell()
{
System.out.println("姓名:"+name+"年龄:"+age);
}
}
public class gouzuoway1 {


public static void main(String[] args) {
// TODO Auto-generated method stub
Passwaya per=new Passwaya("张三",-20);
per.tell();

}
}

类至少提供有一个无参构造方法

如:class Demo{

public Demo() {}

}

说明:构造方法和普通方法的区别
普通方法的定义:public 返回值类型 方法名称()

如果构造方法上写上了void,就成了普通方法了,系统是无法分辨的;

构造方法也能重载

匿名对象
匿名对象不会有任何的栈内存所指向,所以只能使用一次,用了一次之后成垃圾,并且等待被GC释放。
Passi per=new Passi("张三",20);//
匿名:new Passi("张三",20);

猜你喜欢

转载自blog.csdn.net/a584898/article/details/81057328