1.类的属性和方法
??方法分为:构造方法(构造器,构造函数)
??????????
?????????? 普通方法(对象的行为)
?
2.构造器的格式
public 构造器的方法名(数据类型 参数,......);
构造器的方法名必须与类名一致 eg:??
public class Student{
?public Student();
}
?
eg:
?Student stu=new Student();//其实Student();就是一个构造器
? 注意的是:1>当没有定义构造器参数的时候,系统会默认给类一个无参构造器;eg:
?? public class Student{
?public Student(){
?}
}
?????????? 2>当给自己的构造器设置参数的时候,必须要在类中重新设置一个新的带参构造器,也就是说新定义
????? 的构造器会覆盖原来系统默认的构造器;eg:
//定义一个Student类
public class Student{
?public Student(String n){
?//有参构造器
? name=n;
}
}
//定义一个Manager类
public class Manager{
//定义一个入口主函数
public static void main(String []args){
//实例化一个Student对象
Student stu=new("");
}
}
?
3.构造器的作用
?
1>由stu=new Student();可知构造器可以实例化(创建)对象
2>stu=new Student("? 的姓名");可知构造器可以给属性赋初值
?
但要注意的是像一般的方法stu.setName("");
也可以赋值,区别是后者赋值是可以改变的即没有的时候可以赋值,但有初值的时候是可以改变的,而前者赋的值是固定的
3>??Student stu ;
??//实例化一个student类的对象
??stu = new Student("张三");
??System.out.println("第一个stu"+stu);
??stu = new Student("张三");
??System.out.println("第二个stu"+stu);
??stu = new Student("张三");
??System.out.println("第三个stu"+stu);
?
(1)输出可以得到结果是不同的,由此可以看出实例化对象虽然用的是同一个构造器但是输出的结果却是不同的
(2)造成这个输出结果的原因:stu会在占一定的内存空间(栈),每一次输出new都会重新开辟一个内存空间(堆中),虽然程序是无返回值的,
但是系统会默认的返回地址的值
?
4.方法重载
条件:方法名必须完全一致
???? 所带参数的个数,参数的类型,参数的顺序至少要有一个是不同的
作用:可以使同一种行为支配多种对象