java学习之旅(day.08)

类与对象的关系

类是一种抽象的数据类型,是对某一类事物的描述,但并不代表具体的事物,如动物与狗的关系,类描述的是某一类事物具备的共同特点

对象是抽象概念的具体实例

能够展现出功能,体现出特点的是具体的实例,而不是抽象的概念

创建与初始化对象

使用new关键字创建对象

使用new关键字创建的时候,除了分配内存空间外,还会给创建好的对象进行默认的初始化以及对类中构造器的调用

package com.zhang.oop.Demo02;
//学生类,类中包含属性和方法
public class Student {
//属性:字段
    String name; //未赋值前默认值为null
    int age;//未赋值前默认值为0



// 方法
    public void study(){
        System.out.println(this.name+"在睡觉");//this代表当前这个类
    }
}
//以类的方式组织代码    //模板


package com.zhang.oop.Demo02;
//一个项目应该只存在一个main方法
public class Application {//总的测试类

    public static void main(String[] args) {
//类是抽象的,需要把它具体的实例化出来
 //通过new Student()就可以实例化了,类实例化后会产生一个返回结果(类实例化后返回一个自己的对象)
 //student对象就是Student类的一个具体实例
       // Student student =new Student();
          //类     对象的名字
        Student xiaoming =new Student();//类是抽象的模板,通过new关键词可以创建不一样的具体的实例
        Student xiaohong =new Student();
        xiaoming.name="小明";
        xiaoming.age=3;
        System.out.println(xiaoming.name);
        System.out.println(xiaoming.age);
    }
}
//以对象的形式封装数据           //实例

构造器必须掌握

类中的构造器也称构造方法,是在进行创建对象的时候必须要调用的,构造器有以下特点:

  • 必须和类的名字相同
  • 必须没有返回类型,也不能写void
package com.zhang.oop.Demo02;

public class Person {
    //一个类即便什么都不写,也会存在一方法(运行生成class文件后,会自动生成一个空的方法),这个方法就是构造方法,即构造器
    //那就写点:显示的定义一个构造器
    String name;
    int age;
    //构造器的作用:
    //1.使用new关键字,必须要有构造器(new一个对象时,本质是在调用构造器(通过new关键词调用构造方法),程序走完构造器回到new才算实例化完成)
    //2.用来初始化值
    public Person() {//方法的名字和类的名字相同
        //无参构造器    //无返回值,也无void
        this.name = "zhang";
    }

    //有参构造:一旦定义了有参构造,无参构造就必须显示定义,也就是当定义了有参构造,还想在new中采用无参的形式(new Person()),就必须显示的定义一个无参构造,也就是你得把无参构造写出来。所以,只要定义了有参构造,你就默认的搞一个无参构造,弄个框架,里面啥也不写
    public Person(String name) {
      //this.name代表对象本身的name
        this.name = name;
                    //此处name代表参数传递下来的name
    }

}
//构造方法也是方法,方法是可以重载的,所以当在总的测试类中:Person person=new Person(name "zhang")时,此时根据方法的重载,程序会跳过无参构造器,执行有参构造器的步骤(不懂的话加断点调试观察)
//生成(书写)构造器的快捷键:alt+insert
//当有多个属性,比如:name和age,用这种方法构造多个参数的构造器,调用时如果传多个参数,又是一个重载
//当书写空的构造器时,用快捷键再选择 “select none”即可
/*
package com.zhang.oop.Demo02;
//一个项目应该只存在一个main方法
public class Application {//总的测试类

    public static void main(String[] args) {
        //new实例化了一个对象
Person person=new Person();
        System.out.println(person.name);
    }
}
//以对象的形式封装数据           //实例
 */
//总结:回顾构造器
/*
特点
1.和类名相同
2.没有返回值
作用
1.new关键词的时候本质是在调用构造器
2.初始化一些对象的值
注意点
1.定义了有参构造之后,如果想使用无参构造,必须显示的定义一个无参的构造
2.this.~=...
this.~代表当前类的值
=...代表参数传递进来的值

 */

类与对象小结

  • 类与对象

类是一个模板,抽象的;

对象是一个实例,具体的

  • 方法

定义、调用

  • 对象的引用

引用类型:除了基本类型(8)之外的类型都是引用类型

​ 对象是通过引用来操作的,引用就是指向对象的地址

  • 对象的属性:字段或成员变量

    默认初始化:数字 默认值为0或0.0

​ char 默认值为u0000

​ boolean 默认值为false

​ 引用类型 默认值为null

​ 属性的定义:

修饰符 属性类型 属性名=属性值

(这是java中万能的赋值语句形式)

  • 对象的创建和使用

必须使用new关键字创造对象,必须有构造器

new一个Person,这个Person会返回一个对象Person,对象的名字叫person(随便取)即:=Person person =new Person();

调用对象的属性:person.属性;

调用对象的方法:person.方法名();

静态的属性: 属性

动态的行为: 方法 类=属性+方法

posted on 2021-01-08 22:16  懵逼的程序小白  阅读(120)  评论(0)    收藏  举报