构造器的使用和创建
文档:构造器的使用和创建.md
链接:http://note.youdao.com/noteshare?id=e8d904150190acd246c1a99302315f6e&sub=C12A835FA6D04F578FCC7EDAC409D064
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-OBmPN6yc-1591434170416)(FE1B62B4AF72430EBC7134BC6D5A3BC7)]
Fox fox1 = new Fox()
//这句话的作用是:在创建对象的同时,调用了构造器
//构造器的作用是:在创建对象的时候,为对象属性做初始化工作(给对象部分或者所有属性赋值)
package 成员变量;
public class Fox {
//构造方法
String name;
public Fox() {
System.out.println("Fox");
}
public Fox(String n)
{
System.out.println("我的名字" + n);
}
}
package 成员变量;
public class text {
public static void main(String[] args) {
Fox f = new Fox();
Fox f1 = new Fox("kk");
}
}
//console
Fox
我的名字kk
例子2:
package 成员变量;
public class Cat {
String name;
int age;
String homename;
//构造函数
public Cat(String n,int a,String hn) {
name = n;
age = a;
homename = hn;
}
}
package 成员变量;
public class text {
public static void main(String[] args) {
Cat c = new Cat("mao",23,"jia");
}
}
//console
mao 23 jia
构造器的创建
面向对象的设计重点是类的设计,构造器是类的一部分,类中设计构造器
构造器的格式:
public 类名(形参列表){
方法体
//类名只能和开始创建的类名相同
//构造器没有返回类型
//一个类可以有多个重载构造器
//比如
public Cat(String n,int a)
{
name = n;
age = a;
}
public Cat(string n)
{
name = n;
}
//构造器是可以有多个的,调用的时候而已选择所需要的创建
}
坑!!!!
1.如果没有定义构造器,你在main函数中可以直接写 Cat c = new Cat()的原因是:
jvm帮你在类Cat中创建了一个无参构造函数,也就是:
public Cat(){}
2.如果定义了构造器,你在main函数中写 Cat c = new Cat()会报错,因为里面会有
参数的传递
public class Cat {
String name;
int age;
String homename;
//构造函数
public Cat(String n,int a,String hn) {
name = n;
age = a;
homename = hn;
}
}
public class text {
public static void main(String[] args) {
Cat c = new Cat("mao",23,"jia");
}
}
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-fcj2nSar-1591434170417)(E71D85C47EC44AD3BC3EE2317D2B2F13)]
这种写法是错误的
构造器的使用
格式:类 对象名 = new 类名() //其中的类名就是构造器的调用