/**
*
* 构造方法--->是方法,但是它是一个特殊的方法
* 什么特殊性呢?
* 1)构造方法的方法名和类名相同
* 2)没有具体返回值类型
* 3)关键是连void都没有
*
* 构造方法是可以重载的!
*
* 构造方法的目的是什么呢? (作用呢)
* 就是给成员变量赋值的
*
* 给成员变量赋值的方式:
* setXXX(局部变量)方法
* 有参构造方法(局部变量...)
*
*
*///学生类 class Student{ // private String name ; //成员变量 //方法名和类名一致的 //没有返回值类型,没有void public Student(){ System.out.println("这是Student类的无参构造方法"); } //带一个String类型的构造方法 public Student(String name){//局部变量 name 需要传实际参数 // this.name = name ; //赋值了 System.out.println("这是Student带一个String类型的有参构造方法,参数为"+name); } //带两个参数的有参构造方法 public Student(String name,int age){ System.out.println("这是Student带两个参数的有参构造方法,参数为"+name+"--"+age); } //带三个参数的构造方法 public Student(String name,int age,String gender){ //this.成员变量名 = 实际值 //...赋值即可 System.out.println("这是Student带两个参数的有参构造方法,参数为"+name+"--"+age+"---"+gender); } } public class ConstructorDemo { public static void main(String[] args) { //创建学生对象 Student s = new Student() ;//无参构造方法 //System.out.println(s); //地址值 System.out.println("------------------------------"); //创建第二个学生:有参构造方法 Student s2 = new Student("高圆圆") ; System.out.println("------------------------------"); //第三个学生对象 Student s3 = new Student("高圆圆",42,"女") ; } }
/**
* 构造方法的使用的注意事项
* 1)构造方法中,是没有返回值类型的,连void没有,不要随意定义构造方法..
* 2)当前我们的写的一个类(非测试类)中,没有提供任何构造方法的时候
*
* 系统会默认给我们提供无参构造方法;所以我们这俩天每次在写的时候,没有任何构造
* 方法,不会报错,但是我们学习了构造方法,以后永远给出"无参构造方法",继承中就会用到!
*
*
* 3)如果我们给了其中的有参构造方法,此时系统不会在提供无参构造方法,那么如果你使用
* 无参构造方法new 对象的话,就报错!,这也是为什么永远给出无参构造方法的原因之一!
*
*
*
* 给成员变量数据初始化----两种
* 1)通过无参构造方法+setXXX()赋值,通过getXXX()获取值
* 2)通过有参构造方法直接赋值,+getXXX()获取值
*/
//定义一个动物类 class Animal{ private String name ; private int age ; // /*public void Animal(){//普通的成员方法 }*/ //无参构造方法 public Animal(){ //public:表示这个无参构造方法访问权限足够大 } //给了有参构造方法 public Animal(String name,int age){//"tom",3 //System.out.println("这是Animal类的有参构造方法"); this.name = name ;//tom赋值成员变量name this. age = age ; //3 赋值给成员变量age } //setXXX()/getXXX() public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } //其他成员方法 public void eat(){ System.out.println("动物都需要吃"); } public void sleep(){ System.out.println("动物都需要休息"); } } public class ConstructorDemo2 { //测试类---作用:测试其他类的:通过创建对象访问这个类的内容 public static void main(String[] args) { //创建动物类对象 Animal animal = new Animal() ;//通过无参构造方法创建对象 //两种方式去使用即可! //无参构造方法+setXXX()和getXXX()去使用 animal.setName("小白") ; animal.setAge(5); System.out.println("动物的名字是:"+animal.getName()+",年龄是"+animal.getAge()); animal.eat() ; animal.sleep(); System.out.println("--------------------------------------------"); //有参构造方法+getXXX()去使用 Animal animal2 = new Animal("tom",3) ; System.out.println("动物的名字是:"+animal2.getName()+",年龄是"+animal2.getAge()); animal2.eat() ; animal2.sleep(); } }
/**
* 学生事物
* 属性:姓名,年龄,性别,身高,爱好
* 行为:学习,抽烟...
*///学生类 public class Student { //成员变量:属性私有化 private String name ; //姓名 private int age ; //年龄 private String gender ;//性别 private String hobby ; //爱好 private int high ;//身高 //提供无参构造方法 //快捷键:alt+ins+(f