栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

JavaSE - 类和对象

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

JavaSE - 类和对象

目录

1. 回顾

2. 定义一个类 

2.1 如何定义一个类

2.2 注意事项:

3. 类的实例化(产生对象)

3.1 为什么要进行类的实例化?

3.2 什么是类的实例化?

3.3 如何进行类的实例化?

3.4 实例化对象后,如何访问成员变量和成员方法?

3.5 通过一个例子来详细了解类的实例化:

3.6 零碎知识点

4. this的引用

4.1 先看一下最终的比较好的代码

4.2 为什么要有this引用

4.3 什么是this引用以及this引用的特性

5. 对象的初始化和构造方法

5.1 默认初始化和就地初始化

5.2 构造方法:对对象中的成员进行初始化


1. 回顾
  • 1. 一个Java源文件中,可以有若干各类,但是只能有一个public类,并且public修饰的类名必须和文件名相同
  • 2. 方法必须在类的内部,每一个类中,可以有多个方法,但只能有一个main方法。每一个类中都可以有一个main方法

2. 定义一个类 

类的作用:通过类 去描述一个具体的对象

2.1 如何定义一个类

使用关键字class+类名去定义一个类,类名是大驼峰

{}中是类的成员,一个类必须包含两部分:属性(成员变量)和行为(成员方法),且变量和方法都是小驼峰

成员(成员变量和成员方法)前写法统一为public,且此处的成员方法不带 static 关键字

2.2 注意事项:

1. 一般一个文件当中只定义一个类

2. 每一个类都可以有一个自己的main方法,但只能有一个,main方法的格式为:

public static void main(String[] args){}

3. public修饰的类必须要和文件名相同

4. 类中的成员方法可以直接访问或使用成员变量,即成员变量是可以在成员方法中使用的。

3. 类的实例化(产生对象)

3.1 为什么要进行类的实例化?

定义了一个类,就相当于在计算机中定义了一种新的类型。如定义一个狗类,它并不是具体的狗,

它只是一种引用类型,需要对其进行实例化。把图纸变成真正的建筑实体。

3.2 什么是类的实例化?

用引用类型创建对象的过程,称为类的实例化

3.3 如何进行类的实例化?

在Java中采用new关键字,配合类名来创建对象。对象:new 类型()  对象是new出来的

3.4 实例化对象后,如何访问成员变量和成员方法?

通过点号(.)来访问,引用.变量、引用.方法    点号:调用的意思 

通过一个类可以实例化无数个对象

3.5 通过一个例子来详细了解类的实例化:
//定义一个Dog类
public class Dog {
    //成员变量
    public String name;
    public String color;
    //成员方法
    public void barks(){
        System.out.println(name + "汪汪叫!");
    }
    public void wag(){
        System.out.println(name + "摇尾巴");
    }
    //main方法
    public static void main(String[] args) {
        //实例化一个Dog对象
        Dog dog = new Dog();
        //点号(.)-》调用的意思
        //1.可以通过 引用.属性来访问属性
        dog.name = "小灰";
        dog.color = "灰色";
        System.out.println(dog.name);
        System.out.println(dog.color);
        //2.可以通过 引用.方法来访问方法
        dog.barks();
        dog.wag();
        //实例化一个dog2对象
        Dog dog2 = new Dog();
        dog2.name = "大黄";
        dog2.color = "黄色";
        System.out.println(dog2.name);
        System.out.println(dog2.color);
        dog2.barks();
        dog2.wag();
    }
}

3.6 零碎知识点

在类内方法外的变量是成员变量,在方法内的变量是局部变量。

局部变量没初始化程序直接报错。

成员变量没初始化,程序可以运行,默认值是对应的初始值。
(引用变量 -> null,byte/short/int/long->0,float->0.0f,double->0.0,char->'/u0000',
boolean->false)

4. this的引用

4.1 先看一下最终的比较好的代码
public class Date {
    public int year;
    public int month;
    public int day;

  public void setDate(int year,int month,int day){
      this.year =  year;
      this.month = month;
      this.day = day;
  }
    public void printDate(){
        System.out.println(this.year+" "+this.month+" "+this.day);
    }
    

    public static void main(String[] args) {
        Date date = new Date();
        Date date2 = new Date();

        date.setDate(2022,8,4);
        date2.setDate(2022,8,5);
        
        date.printDate();
        date2.printDate();
    }
}

4.2 为什么要有this引用

1. 形参名不小心与成员变量名相同

可能会出现形参自己给自己赋值的现象,根本没赋值到成员变量中

2.若我多实例化几个对象,在main方法中,我可以通过不同的引用知道是setDate和printDate的哪个对象,但站在成员方法的角度上,这两个函数中没有任何有关对象的说明,setDate和 printDate函数如何知道打印的是那个对象的数据呢?

这就有了this。

4.3 什么是this引用以及this引用的特性

this:当前对象的引用,即谁调用这个方法,谁就是this

如:

 这时,date就是this


特性:

1. this只能在"成员方法"中使用

2. this是“成员方法”的第一个隐藏的参数,不加也会默认有一个this,(红色和蓝色部分都默认会有)但是为了防止形参名不小心与成员变量名相同,最好还是加上(蓝色部分的)this。

3. this有三种使用:this.成员变量 、 this.成员方法  、 this();访问构造方法

5. 对象的初始化和构造方法

5.1 默认初始化和就地初始化
默认初始化:没给成员变量赋值,此对象的成员变量被默认初始化成初始值

就地初始化:在声明成员变量时,就直接给出了初始值,这就是就地初始化。就地初始化的变量,若后面没有进行修改,那么它默认的输出值就是这个值

5.2 构造方法:对对象中的成员进行初始化

1. 构造方法没有返回值,方法名和类名必须是一样的

2. 实例化对象,一定会调用构造方法。当构造方法调用完成之后,对象才实际上产生了。

3. this(...);调用本类当中其它的构造方法,但必须放在构造方法里面,并且必须是第一行,且不能形成环(即不能我调用你,你里面再调用我)

4.若我们没有提供任何的构造方法,编译器会帮我们生成一份默认的无参的构造方法

一旦我们提供了任何一个构造方法,编译器则不再生成无参构造方法,若用到,需要我们自己提供

5. 在创建对象时,构造方法由编译器自动调用,并且在整个对象的生命周期内只调用一次。

6. 构造方法的作用就是对对象中的成员进行初始化

7. 构造方法可以重载 

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1035012.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号