深入理解类和对象(1) —— Java SE

导读:本篇文章讲解 深入理解类和对象(1) —— Java SE,希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com

深入理解类和对象(1) —— Java SE深入理解类和对象(1) —— Java SE

目录

1. 理解面向对象和面向过程

2. 类的定义与使用

3. 如何将类进行实例化

 4. this引用

5. 对象的构造及初始化

5.1初始化对象

 5.2 构造方法

 5.3 默认初始化

5.4 就地初始化

5.5 总结一下,对于成员的赋值 

6.看完本篇这些知识点你明白了几点


Java是面向对象的语言,对象就是面向对象程序设计(OOP)的核心。

本篇主要带领大家理解类和对象,还有对象三大特征之一的封装性

1. 理解面向对象面向过程

既然java是面向对象的语言,那么什么是对象,如何理解对象,我的理解是这样的

对象就是真实世界,实际存在的实体,对象和实体是相互对应的,也就是说每一个实体都是一个对象,这是一个具体的概念。

并且还有这些特点;

对象具有属性和行为,能够有变化的状态,应该具有唯一性,真实世界中所有的实物都可以看做对象。

 明白了什么是对象后,那么面向对象和面向过程又是怎么样的呢,下面看一下这个例子

深入理解类和对象(1) —— Java SE

 面向对象和面向过程都是解决问题的一种方法,没有好坏优劣之分,都有其对应场景

面向对象是基于面向过程的,面向对象能让复杂的问题简单化,我们不需要了解具体的实现过程,只需要指挥对象实现功能


2. 类的定义与使用

java语言是面向对象的一门语言,而对象又是现实世界的实体,那么如何把这个对象告诉计算机,让计算机识别出来呢,这里就要引出类这个概念了

因为计算机识别不出对象,那么就要给对象进行抽象,所以类是是具有共同属性和服务的对象的抽象(或集合)。

类的内部包含两个主要部分,属性和行为

下面看一下类的定义格式

class ClassName{ 
     field; // 字段(属性) 或者 成员变量
     method; // 行为 或者 成员方法 
}

class为定义类的关键字,

ClassName为类的名字,

{}花括号里为类的主体内容,构成主体内容的成员为

属性:是用来描述类的,称为成员属性或成员变量(属性是在类的内部,方法的外部)

方法:是用来说明类具有哪些功能,称为成员方法

下面看一下这个例子

class Car{
    //1.字段/属性 成员变量
    public String brand;//品牌
    public String type;//型号
    public double lenght;//长
    public double weight;//宽
    public double height;//高
    public String color;//颜色
     
    //2.行为/方法 成员方法
    public void DrivingFunction(){//开车
        System.out.println("行驶功能");
    }
    public void BrakeFunction(){//刹车
        System.out.println("刹车功能");
    }
    public void AccelerationFunction(){//加速
        System.out.println("加速功能");
    }
}

 我们在写类时要注意,

类名采用大驼峰定义,

成员变量前统一写public,

一般情况下一个文件中只定义一个类,

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

深入理解类和对象(1) —— Java SE

 下面再看一个狗类的例子吧

class Dog{
    public String name;
    public int age;
    public String color;
    
    public void wag(){
        System.out.println("摇尾巴!");
    }
    public void bark(){
        System.out.println("旺旺!");
    }
}

3. 如何将类进行实例化

先明白什么叫类的实例化

定义一个类,就相当于在计算机中定义了一个新的类型。

就和int ,double 相似,int,double也是java语言自带的内置类型。

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

这个实例化对象的关键字是new

深入理解类和对象(1) —— Java SE

  如何使用类的成员方法呢                                         如何初始化赋值呢

 深入理解类和对象(1) —— Java SE深入理解类和对象(1) —— Java SE

我们还可以实例化好多对象

 深入理解类和对象(1) —— Java SE

理解了,面向对象,类和类的实例化,我们看一下它们的关系

深入理解类和对象(1) —— Java SE


 4. this引用

要找到什么叫this引用,先看一个日期的例子



public class Date {

    public int year;
    public int month;
    public int day;

    public void setDate(int y,int m,int d){
        year = y;
        month = m;
        day = d;
    }

    public void printDate(){
        System.out.println(year+" "+month+" "+day);
    }
public static void main(String[] args) {
        Date data1 = new Date();
        data1.setDate(2021,5,21);
        data1.printDate();
        Date data2 = new Date();
        data2.setDate(2022,5,21);
        data2.printDate();
        Date data3 = new Date();
        data3.setDate(2023,5,21);
        data3.printDate();
}
}

 深入理解类和对象(1) —— Java SE我们通过main方法创建3个对象,然后通过Date类中的成员方法对对象进行初始化赋值和打印。

下面我们考虑两个问题

1,形参名和成员名如果相同会发生什么

深入理解类和对象(1) —— Java SE  

那么这个问题怎么解决?

这就要用到this引用了 

深入理解类和对象(1) —— Java SE

2.三个对象都在调用setDate和printDate函数,这两个函数是如何知道打印的是哪个对象的数据呢?

方法只有一个,三个对象都在调用这两个函数,那么这个两个函数是怎么知道谁在调用它的,它是怎么区别对象的

很简单,就是点号前面的这个,点号前面是谁就是谁在调用

深入理解类和对象(1) —— Java SE

 所以this引用代表是什么意思

深入理解类和对象(1) —— Java SE

不用this,有些情况下可能不会报错,

但用this,一定不会报错,所以以后在成员方法中就使用this吧

在成员方法中,this只能引用当前对象,不能再引用其他对象

5. 对象的构造及初始化

5.1初始化对象

这个就叫初始化对象,很简单,需要调用之前写的SetDate方法才可以将具体的日期设置到对象中

深入理解类和对象(1) —— Java SE

 现在我们考虑两个问题
1.局部变量必须要初始化化才能使用,为什么字段声明后没有值还可以使用

前面已经说过了,这是因为有一个默认值

2.每次对象创建好后调用SetDate方法设置具体日期,很麻烦,有什么比较简单的方法 

有,请看下文

 5.2 构造方法

构造方法:方法的方法名和类名是一样的,这个方法很特殊,没有返回值,并且在整个对象的生命周期内只调用一次 

深入理解类和对象(1) —— Java SE 

1.我们使用IDEA,以后写构造方法,不用一个一个写,可以这样做

深入理解类和对象(1) —— Java SE

2.在构造方法中,可以通过this调用其他构造方法,带使代码更简单 

 深入理解类和对象(1) —— Java SE

 this使用:

1.this.属性 —》访问当前对象的属性

2.this()—–》调用当前对象的构造方法

     (1)必须放到构造方法中去

     (2)必须放在当前的构造方法第一行

     (3)调用不能形成环的调用

3.this.func();    调用当前对象的成员方法

 5.3 默认初始化

 前面已经说过了,成员变量没有初始化,就会给一个默认值

下面来看一下对应类型的默认值

数据类型 默认值
byte 0
char

‘\u0000’

short 0
int 0
long 0L
boolean false
float 0.0f
double 0.0
reference null

   

5.4 就地初始化

 就地初始化理解起来很简单,在声明成员变量时,就直接给出了初始值。

public class Date {
    public int year = 2022;
    public int month = 5;
    public int day = 8;

    public Date(){
}

    public void printDate(){
        System.out.println(year+" "+month+" "+day);
    }

public static void main(String[] args) {
        Date date1 = new Date();
        date1.printDate();
}
}

5.5 总结一下,对于成员的赋值 

1.定义字段的时候,同时初始化,这种叫就地初始化

2.不初始化,那就是默认初始化,0

3.在类外,通过对象的引用 直接赋值

比如  深入理解类和对象(1) —— Java SE

4.通过构造方法直接初始化

5.通过提供get和set(下一篇,java三大核心中会讲到)


6.看完本篇这些知识点你明白了几点

1.如何创建类:通过class

2,字段,成员变量| 方法 成员方法

3.如何创建对象:通过new关键字进行实例化对象   Dog dog = new Dog();

4.通过对象的引用dog.属性   dog.方法

5.实例化对象其实调用的是构造方法。 多个构造方法-》重载

6.this三种使用

7.成员赋值的几种方法 就地初始化 默认初始化 引用直接赋值 构造方法初始化 get和set


版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/91271.html

(0)
小半的头像小半

相关推荐

极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!