Java教程

java中面向对象学习记录

本文主要是介绍java中面向对象学习记录,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
 //1.有一些数据
    //classNumber  name   age    sex    birthday   dog
    //01   张三 20 男  2001-10-10 [拉布拉多,20岁]
    //01   李四 30 女  1990-10-19 [金毛,10岁]
    //01   王五 40 男  1999-10-10 [柯基,4岁]
    //
    //要求:将三条数据放入Student对象,并将所有对象放入数组,并遍历(遍历时要求看到属性)

    //有一条数据
    //name age    sex
    //唐僧   40 男
    //将这条数据放入Teacher

    //学生行为:读书,吃饭
    //老师行为:讲课,吃饭


    分析:使用的知识点
    数组
    面向对象的对象实例化
    类
    组合
    遍历

    构造方法
    this
    重写
    继承
    final

 */
class  Student{
    int classNumber;
    String name;
    int age;
    String sex;
    String birthday;

    //组合
    Dog dog;
    public Student(){

    }

    public Student(int classNumber,String name,int age,String sex,String birthday,Dog dog){
        this.classNumber = classNumber;
        this.name = name;
        this.age = age;
        this.sex = sex;
        this.birthday = birthday;
        this.dog = dog;
    }
}

class Dog{
    int age;
    String name;

    public Dog(){

    }

    public Dog(int age,String name){
        this.age = age;
        this.name = name;
    }
}
/*public class Demo1 {
    public static void main(String[] args) {
        要求:将三条数据放入Student对象,并将所有对象放入数组,并遍历(遍历时要求看到属性)
        Student[] students = new Student[3];
        Student s1 = new Student();
        s1.age = 10;
        s1.name = "张三";
        s1.sex = "男";
        s1.birthday = "1990-10-10";
        s1.classNumber = 1;
        Dog d1 = new Dog();
        d1.name = "拉布拉多";
        d1.age = 5;
        s1.dog = d1;
        students[0] = s1;

        //通过构造方法实现内容的添加
        students[1] = new Student(1,"李四",20,"男","1890-10-10",new Dog(20,"金毛"));
    }
}*/
public class Demo1 {
    public static void main(String[] args) {
        /*
        构造方法:对对象的属性进行初始化
        当我们没有手动创建构造方法时,系统会自动的创建一个空参的构造方法.
        注意:只要我们手动生成了构造方法,不管这个方法是不是带参数,系统都不会再自动生成空参的构造方法

        //完成功能:在初始化的同时完成赋值
         */
        Person p = new Person();
//        p.name = "张三";
        p.age = 10;
        System.out.println(p.name);

        Person p2 = new Person("张三",10);
        System.out.println(p2.name);

        Person p3 = new Person("李四",20,20,20,"男");
    }
}

class Person{
    String name;
    int age;
    int height;
    int weight;
    String sex;

    public void  play(){
        System.out.println("play");
    }

    //手动创建构造方法
    /*
    构造方法的特点:
    1.方法名与类名相同
    2.构造方法没有返回值--返回值类型的位置什么都不写
    当我们给构造方法写了返回值类型,就变成了普通方法
     */
    public  Person(){//方法体
        //this("张三",20); 相互调用--死循环
        //this();  自己调用自己--死循环
        System.out.println("空参的构造方法");
    }

    //创建有参的构造方法--在初始化的同时完成了赋值
    //
    public Person(String name){
        //this();
        this.name = name;

        System.out.println("有参的构造方法");
    }

    public Person(String name,int age){
        //this.name = name;
        this(name);
        this.age = age;

        System.out.println("有参的构造方法");
    }

    public Person(String name,int age,int height,int weight,String sex){
//        this.name = name;
//        this.age = age;
        /*
        this在这里做的是构造方法

        注意点:
        1.this只能充当构造方法
        2.构造方法之间不能相互调用或者自己调用自己---死循环
        3.this代表的当前对象,只能在当前类里面使用.
        4.this不能在静态方法中使用.
        5.this作为构造方法时,必须方法当前方法的第一行.
         */
        this(name,age);
        this.height = height;
        this.weight = weight;
        this.sex = sex;

        System.out.println("有参的构造方法");
    }
}
这篇关于java中面向对象学习记录的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!