JavaSE--类和对象·上

类是来描述一个对象的,

对象是一个真正存在的实体。

1.什么是面向对象

面向对象(Object-Oriented)是一种编程思想和方法,它将程序中的数据和操作数据的方法封装成对象,通过对象之间的交互来实现程序的功能。

面向对象编程的核心思想是将现实世界中的事物抽象为对象,每个对象都具有特定的属性(数据)和行为(方法)。对象之间通过消息传递来进行通信和交互。通过封装、继承和多态等特性,面向对象编程可以提高代码的可读性、可维护性和可复用性。

面向对象编程在很多编程语言中得到广泛应用,如Java、Python、C++等。它是一种强大的编程范式,可以帮助开发者更好地组织和管理程序的逻辑。

2.什么是面向对象编程

面向对象编程(Object-Oriented Programming,简称OOP)是一种编程范式,它将数据和操作数据的方法组合成一个被称为"对象"的结构体,以此来创建对象的实例。在面向对象编程中,数据被抽象为对象的属性,而操作数据的方法被抽象为对象的方法。面向对象编程的核心思想是将程序的各个组成部分划分为相互独立、具有内聚性和高度封装的对象,通过对象之间的交互来完成程序的功能。

面向对象编程具有以下主要特点:

  • 封装性:对象将数据和操作数据的方法封装在一起,只暴露必要的接口供其他对象使用,提供了数据的隐藏和保护,使得程序具有更好的安全性和可靠性。
  • 继承性:继承是面向对象编程的重要特性之一,通过继承,一个类(称为子类或派生类)可以继承另一个类(称为父类或基类)的属性和方法,减少了重复代码的编写,提高了代码的复用性和扩展性。
  • 多态性:多态是指一个对象可以在不同的情况下表现出不同的行为。通过多态,可以在不改变原有代码的基础上扩展程序的功能,提高了程序的灵活性和可扩展性。

简单来说,面向对象编程就是找对象->创建对象->使用对象

3.类

3.1 什么是类

在面向对象编程中,类(Class)是一种用来描述具有相同属性和行为的对象集合的模板或蓝图。它定义了一组属性(成员变量)和方法(成员函数),用于描述对象的状态和行为。

3.2类的定义
// 创建类
class ClassName{
field; // 字段(属性) 或者 成员变量
method; // 行为 或者 成员方法
}

class定义类的关键字,ClassName为类的名字,{}中为类的主体。

类中包含的内容称为类的成员。

属性主要是用来描述类的,称之为类的成员属性或者类成员变量。(可以不初始化直接输出)

那是因为,成员变量会有默认值。

默认值规则
数据类型默认值
byte0
char\u0000
short0
int0
long0L
booleanfalse
float0.0f
double0.0
referencenull

方法主要说明类具有哪些功能,称为类的成员方法。 

例如:

class WashMachine{
   //字段   属性  成员变量
    public String brand; // 品牌
    public String type; // 型号
    public double weight; // 重量
    public double length; // 长
    public double width; // 宽
    public double height; // 高
    public String color; // 颜色

    //行为、成员方法
    public void washClothes(){ // 洗衣服
        System.out.println("洗衣功能");
    }
    public void dryClothes(){ // 脱水
        System.out.println("脱水功能");
    }
    public void setTime(){ // 定时
        System.out.println("定时功能");
    }
}
注意事项:
  • 类名注意采用大驼峰定义
  • 成员前写法统一为public
  • 此处写的方法不带 static 关键字
  • 最好一个Java文件一个类
  • main方法所在的类一般要使用public修饰
  • public修饰的类必须要和文件名相同
  •  不要轻易去修改public修饰的类的名称,如果要修改,通过开发工具修改

4.类的实例化

类的实例化是指通过类创建一个具体的对象。在面向对象编程中,类是对象的模板或蓝图,通过实例化类,可以创建多个具有相同属性和方法的对象。

在大多数编程语言中,实例化类的过程通常使用关键字 "new"。具体的语法和步骤可能会有所不同,但基本思想是相同的。

// 定义一个类
class Person {
    String name;
    int age;

    void sayHello() {
        System.out.println("Hello, my name is " + name);
    }
}

// 实例化类
Person person1 = new Person();
Person person2 = new Person();

// 设置对象的属性
person1.name = "Alice";
person1.age = 25;

person2.name = "Bob";
person2.age = 30;

// 调用对象的方法
person1.sayHello();  // 输出:Hello, my name is Alice
person2.sayHello();  // 输出:Hello, my name is Bob
 

原理图:

结论:1.通过对象的引用,我们可以去访问对象的成员变量和成员方法。

           2.同一个类可实例化多个对象。

5.this引用

在Java中,关键字"this"用于引用当前对象的实例。它可以在类的方法内部使用,指代当前正在调用该方法的对象实例。

使用"this"可以实现以下几个功能:

  • 区分实例变量和方法内部变量:如果方法内部的变量与实例变量同名,则可以使用"this"关键字来引用实例变量。
  • 在构造方法中调用其他构造方法:如果一个类中有多个构造方法,可以使用"this"关键字来调用其他构造方法。
  • 作为方法的返回值:这种情况下,"this"关键字用于返回当前对象的引用本身,从而实现链式调用。

例如:

public class Date {
    public int year;
    public int month;
    public int day;

    public void setDay(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);
    }
}

6.构造方法

构造方法 ( 也称为构造器 ) 是一个特殊的成员方法, 名字必须与类名相同,在创建对象时,由编译器自动调用,并且 在整个对象的生命周期内只调用一次
例如
public class Date {
    public int year;
    public int month;
    public int day;

    // 构造方法:
    // 名字与类名相同,没有返回值类型,设置为void也不行
    // 一般情况下使用public修饰
    // 在创建对象时由编译器自动调用,并且在对象的生命周期内只调用一次
    public Date(int year, int month, int day){
        this.year = year;
        this.month = month;
        this.day = day;
        System.out.println("Date(int,int,int)方法被调用了");
    }

    public void printDate(){
        System.out.println(year + "-" + month + "-" + day);
    }
    
    public static void main(String[] args) {
        // 此处创建了一个Date类型的对象,并没有显式调用构造方法
        Date d = new Date(2021,6,9); // 输出Date(int,int,int)方法被调用了
        d.printDate(); // 2021-6-9
    }
}

结论:1.不止一个构造方法。

           2.构造方法作用就是来初始化对象当中的成员。

注意:当你没有写任何构造方法的时候,java会给你提供一个默认的不带参数的构造方法,但是          一旦你有其他的构造方法,java就不会再提供了!!!

  • 17
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 6
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

哞哞不熬夜

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值