【Java Se】类与对象

简介: 类就是具备某些共同特征的实体的集合,它是一种抽象的数据类型,它是对所具有相同特征实体的抽象。在面向对象的程序设计语言中,类是对一类“事物”的属性与行为的抽象。

概念:

它们的概念是这样的:


类就是具备某些共同特征的实体的集合,它是一种抽象的数据类型,它是对所具有相同特征实体的抽象。在面向对象的程序设计语言中,类是对一类“事物”的属性与行为的抽象。


对象就是一个真实世界中的实体,对象与实体是一一对应关系的,意思就是现实世界的每一个实体都是一个对象,所以对象是一个具体的概念。


其实在java中类是对象的集合,对象是类的实例。


对象是通过new className产生的,每一个对象都是通过类所实例化出来的,然后在调用类中的方法、类的构造方法


类与对象


首先类我们可以理解为一个我们自己写出来的较为复杂的数据结构,类似于C语言中的结构体,只不过这个结构体中有方法而已


每一个程序有且必须有一个主类,为程序的入口


类的成员可以包含:字段、方法、代码块、内部类和接口等


what…方法??类的方法??类的构造方法???什么鬼呢?


这里再解释一下Java的方法分为方法与构造方法


方法:


可以理解为c语言的函数,来解决某一类问题的的个方法(可恶!又是方法,注意不要上头,被绕进去)


构造方法:


构造方法主要就是为了创建对象,并且完成对象的初始化,类实例化一个对象时会自动调用构造方法,构造方法的基本语法为:


方法名必须与类名相同


构造方法没有返回值(连void都不能有)


每一个类中至少定义一个构造方法(没有明确定义,系统会自动生成一个无参数的构造方法,如果自己定义了,默认构造方法将不再生成)


接下来我们看一个代码:

class Baibai{
    int a;
    #构造方法不能有返回类型,因为无返回值
    public Baibai(){
        a=10;
        System.out.println(a);
        System.out.println("构造方法");
    }
    #普通方法必须要有返回类型
    public void General(){
        System.out.println("普通方法");
    }
}
public class Text_0 {
    public static void main(String[] args){
        Baibai B=new Baibai();
        B.General();
    }
}



它的输出为:


构造方法

普通方法


这里注意我们没有调用类中的Baibai()方法,但是它为什么运行了呢??


如果还存在这个疑问就说明之前的东西你没有完全懂!解释一下这个:


首先要知道的是


Baibai B=new Baibai();


中的Baibai()指的不是类,而是构造方法,对象是通过类的构造方法来创建的,如果说你写类的时候没有特意去写构造方法,那么系统会自动生成一个无参数的构造方法,即:


public Baibai(){}


其次,你要知道的是:使用对象时,new 执行了两个过程


为对象分配内存


调用对象的构造方法


也就是说当你创建对象时,程序会先执行一遍对应的构造方法


为什么我这里要加上“对应”呢?因为构建方法也是可以重载的


重载


重载是指我们可以定义一些名称相同的方法,通过定义不同的参数来区分这些方法,然后再调用时,Java虚拟机就会根据不同的参数列表来选择合适的方法执行。也就是说当一个重载方法被调用时,Java用参数的类型或个数来决定实际调用的重载方法。因此,每个重载方法的参数的类型或个数必须是不同。如下:

class Baibai{
    int a;
    public Baibai(){
        a=10;
        System.out.println(a);
        System.out.println("构造方法");
    }
    public Baibai(int b){
        a=b;
        System.out.println(a);
        System.out.println("构造方法的重载");
    }
    public void General(){
        System.out.println("普通方法");
    }
}
public class Text_0 {
    public static void main(String[] args){
        Baibai B=new Baibai();
        #同时赋初值
        Baibai B1=new Baibai(5);
        B.General();
    }
}


它的输出为:


构造方法


构造方法的重载

普通方法


相关文章
|
1天前
|
安全 Java 开发者
Java一分钟之-文件与目录操作:Path与Files类
【5月更文挑战第13天】Java 7 引入`java.nio.file`包,`Path`和`Files`类提供文件和目录操作。`Path`表示路径,不可变。`Files`包含静态方法,支持创建、删除、读写文件和目录。常见问题包括:忽略异常处理、路径解析错误和权限问题。在使用时,注意异常处理、正确格式化路径和考虑权限,以保证代码稳定和安全。结合具体需求,这些方法将使文件操作更高效。
10 2
|
1天前
|
安全 Java 开发者
Java一分钟之-Optional类:优雅处理null值
【5月更文挑战第13天】Java 8的`Optional`类旨在减少`NullPointerException`,提供优雅的空值处理。本文介绍`Optional`的基本用法、创建、常见操作,以及如何避免错误,如直接调用`get()`、误用`if (optional != null)`检查和过度使用`Optional`。正确使用`Optional`能提高代码可读性和健壮性,建议结合实际场景灵活应用。
16 3
|
1天前
|
存储 Java ice
【Java开发指南 | 第十六篇】Java数组及Arrays类
【Java开发指南 | 第十六篇】Java数组及Arrays类
8 3
|
1天前
|
Java 编译器 ice
【Java开发指南 | 第十五篇】Java Character 类、String 类
【Java开发指南 | 第十五篇】Java Character 类、String 类
11 1
|
1天前
|
存储 Java ice
【Java开发指南 | 第十四篇】Java Number类及Math类
【Java开发指南 | 第十四篇】Java Number类及Math类
9 1
|
1天前
|
存储 缓存 Java
【Java开发指南 | 第六篇】Java成员变量(实例变量)、 类变量(静态变量)
【Java开发指南 | 第六篇】Java成员变量(实例变量)、 类变量(静态变量)
9 2
|
1天前
|
Java 编译器
【Java开发指南 | 第一篇】类、对象基础概念及Java特征
【Java开发指南 | 第一篇】类、对象基础概念及Java特征
9 4
|
5月前
|
Java
多线程与并发,Java中介绍一下Thread类和Runnable接口的区别。
多线程与并发,Java中介绍一下Thread类和Runnable接口的区别。
33 1
|
5月前
|
Java Unix 程序员
java 8 新特性讲解Optional类--Fork/Join 框架--新时间日期API--以及接口的新特性和注解
java 8 新特性讲解Optional类--Fork/Join 框架--新时间日期API--以及接口的新特性和注解
63 1
|
3天前
|
安全 Java 调度
Java一分钟:多线程编程初步:Thread类与Runnable接口
【5月更文挑战第11天】本文介绍了Java中创建线程的两种方式:继承Thread类和实现Runnable接口,并讨论了多线程编程中的常见问题,如资源浪费、线程安全、死锁和优先级问题,提出了解决策略。示例展示了线程通信的生产者-消费者模型,强调理解和掌握线程操作对编写高效并发程序的重要性。
43 3