在java中搞对象???
哈哈哈,先皮一下,关于java中的对象,我一直好奇,咋就一new就有了,我这么多年都没…百思不得其解。但是最近,我好像懂了一丢丢,所以分享下,如有不对的理解,还希望大佬们指点一二,不懂一个东西用着真的难受哎…
一构造器的引入:
对象的产生与类的结构之一构造器密不可分,我们都知道new对象的方式,但是,new下的对象在哪呢???其实叭,若我们在类中只是创建了方法和属性,而未创建构造器,但是我们new了对象,那系统会默认一个空参的构造器。
如下:类的创建:
public class delete {
int age;
String name="LENJIAER";
public void ager(int num){
System.out.println("小明今年"+num+"岁了");
}
public String namer(){
System.out.println(name);
return name;
}
}
new对象:
public class using {
public static void main(String[] args) {
delete hero=new delete();
hero.ager(20);
hero.namer();
}
}
new完了后我们就可以使用这对象了,但是我们没有创建构造器,虽然可以,但是我们不知道new在何处了,接下来我就写出完全体!!!
如下:
public class delete {
int age;
String name="LENJIAER";
public delete(){
} //空参构造器
public void ager(int num){
System.out.println("name is "+num);
}
public String namer(){
System.out.println(name);
return name;
}
}
再new对象并调用时结果不会改变的,这里相对于上一个例子我新加的就是一个空参的构造器。创建格式就是:
权限修饰符+类名(形参列表){ }
二.构造器的体现(即存在意义):
构造器的作用:1.创建对象(上面说的就是创建对象);2.初始化对象的属性。
public class delete {
int age;
String name="tom";
public delete(){
}
public delete(int n,String cha){
age=n;
name=cha; //用构造器给属性赋值
}
public void ager(int num){
age=num; //方法赋值
System.out.println(age);
}
}
public class using {
public static void main(String[] args) {
delete hero=new delete();
hero.ager(20); //new了对象后再赋值
delete superhero=new delete(1000,"LBW"); //直接在new时候就赋值
System.out.println(superhero.age+superhero.name);
}
}
细心的小伙伴会发现,构造器的优势来了,如果我们只是new以下对象,但是我们需要给属性赋值时,我们需要调用赋值的方法,但是,我们有了构造器后,就可以在new对象时给它一次就赋值好.比如:上述的对象superhero在new对象时给了1000,那么该对象的age==1000了,不再需要调用ager来赋值了。也就是说,一个构造器可以支持所有属性的进行赋初始化值,不同的新对象都可以在创建时调用,以方便给该对象中的需要赋值的属性赋值。(其实,构造器也是方法的一种)
老规矩,使用的注意点如下:
1.一般在开发中,会给类的属性下加一个空参构造器。
2.一个类中定义了多个构造器,彼此构成重载,而且那个更符合new的对象,对象就会选择哪个构造器。
3.一旦我们显式的定义了类的构造器后,系统就不再提供默认的空参构造器了。
4.一个类中至少一个构造器,你没给,系统会给的,(反正这对象总不会孤独,非得找个构造器,酸了酸了…)
最后,关于构造器,我想说的是:构造器是便于我们new多个对象时候赋初始的属性值(支持赋值不同)的和造对象的。如有不对,还望大佬们指点一二,大家一起进步。嘿嘿