细说类和对象

这篇文章主要包括类和对象及其相关的内容,博主主要写了类的两个成员:方法和变量,对类有了一个大概的解释,描述了如何创建类。
希望对刚接触Java的小伙伴有帮助。

初探类和对象

一、类是什么?对象又是什么?
类(Class)是一种用户自定义的数据类型,用于描述具有相同属性和方法的对象集合。类是Java程序的基本组成部分,它定义了一个对象的属性和方法。
对象(Object)是类的实例化结果,是类的具体实现。在Java中,通过创建一个类的对象来使用该类的属性和方法。
二、类和对象的使用
1、类的创建
类的关键字是 class ,我们可以通过以下步骤来创建一个类:
1)定义类名:使用关键字 “class” 后面跟着类名来创建一个类,类名的命名需要符合标识符的命名规则,通常情况下类名的第一个字母大写。
2)定义类的属性:在类中定义属性,也称为成员变量,用于描述类的状态。属性可以是任何数据类型,包括但不限于基本数据类型。
3)定义类的方法:用于描述类的行为。同样,方法可以是任何数据类型,包括返回值为 void 的方法。
4)定义构造方法:构造方法是一种特殊的方法,用于初始化对象的属性。在类中定义构造方法,可以用关键字 ‘public’ 和类名相同的方法名来定义。
下面是一个简单的例子:

public class Person {
    String name;
    int age;
    boolean isMale;
    
    //定义类的方法
    //输入年龄、名字、性别的方法
    public void setAge(int age) {
        this.age = age;
    }
    public void setMale(boolean male) {
        isMale = male;
    }
    public void setName(String name) {
        this.name = name;
    }
    
    //定义构造方法
    public Person(String name,int age,boolean isMale){
        this.name=name;
        this.age=age;
        this.isMale=isMale;
    }
}

在上面的例子中,我们创建了一个名为 Person 的类,该类具有三个属性 name、age 和 isMale,三个方法 setAge、setMale、setName和一个构造方法 Person()。
2、对象的创建
创建对象需要用到另一个关键字 “new” ,可以通过类的构造来同时创建和初始化你的对象,通过上面那个 Person 类,我们可以创建多个具有相同属性和方法的对象,同时可以对方法进行调用,例如:

Person person1=new Person("Bob",22,true);
Person person2=new Person("Rose",20,false);
person1.setName("Pop");//将 person1的名字改成Pop

创建好了对象之后我们就可以开始使用这个对象了。
3、匿名对象
在Java中,匿名对象是一种没有名字的对象,它通常只在创建时使用一次,并且没有任何引用指向它。由于没有引用指向它,因此匿名对象在创建后无法再次访问。匿名对象通常用于简化代码,避免创建不必要的对象。
通常我们会在以下场景中用到匿名对象:
1)当我们只需要使用一个对象一次时,可以使用匿名对象来避免创建不必要的对象,从而提高代码的执行效率。
2)当我们需要调用一个对象的方法,但不关心这个对象的具体类型时,可以使用匿名对象来简化代码。例如,我们可以使用匿名对象来调用一个接口的方法:

new Person() {
	public void problemPerformed(Person a){
		//解决问题的代码
	}
}

3)当我们需要传递一个对象作为参数,但不需要在后续代码中再次使用这个对象时,可以使用匿名对象来简化代码。

类的成员

一、变量(field)
一)成员变量
1、声明成员变量
格式:
修饰符1 class 类名{
修饰符2 数据类型 成员变量名=初始化值;
}

public class text(){
	int num = 0;
}

要遵循以下规则:
1)名字符合标识符命名规则;
2)成员变量定义在类中,方法体外;
3)修饰符有以下几个常见的:public、private、缺省、protected;
4)类型可以是基本数据类型也可以是引用数据类型。

二)成员变量 VS 局部变量
成员变量和局部变量的形式一般来说是一样的,只是位置和作用域不一样。

1、变量有两种常见的分类方式:
1)分为局部变量和成员变量两种。局部变量有形参(方法、构造器中定义的变量)、方法局部变量(方法中定义的变量)、代码块局部变量(代码块中定义的变量)三种,成员变量有实例变量(没有 static 修饰的)、类变量(有 static 修饰的)。
2)以 static 分类的,分为静态变量和非静态变量。其中静态变量被称为类变量,非静态变量又称为实例变量或者属性。

2、对比一下成员变量和局部变量:
1)声明位置不同:实例变量在类中,方法外,局部变量在方法体{}里面或方法的形参列表、代码块中;
2)内存中存储位置不同:实例变量在堆空间,局部变量在栈空间;
3)生命周期不同:实例变量随着对象的创建而存在,随着对象被 GC(垃圾回收)回收而消亡,而且每一个对象的实例变量是独立的,局部变量和方法调用的生命周期一样,每一次方法被调用而在存在,随着方法执行的结束而消亡,而且每一次方法调用都是独立。
4)作用域不同:实例变量通过对象就可以使用,本类中直接调用,其他类中
“对象.实例变量”,局部变量出了作用域就不能使用;
5)修饰符不同:实例变量:public,protected,private,final,volatile,transient 等,局部变量:final 。

class Text{
	int ID;
	boolean isAte;
	public void changeID(int newID){
		ID=newID;
	}
}

上面的 ID、isAte 都是成员变量,形参列表里面的 newID 是局部变量。

二、方法
一)什么是方法
在Java中,方法是一段用于执行特定任务的代码块,可以接受输入参数并返回结果。方法通常用于定义对象的行为,以及对对象的状态进行操作。方法由方法名、参数列表、返回类型和方法体组成。例如:

public int add(int x,int y){
	return x+y;
}

这个方法是将输入的两个值加起来的方法。

二)方法的使用
1、方法的定义
定义一个方法的基本格式是:
修饰符 数据类型 方法名 (形参列表){
方法体;
}
这里的修饰符可以是下面几个:public、protected、private、abstract、native、final、synchronized 等;
数据类型可以但不限于基本数据类型,引用数据类型等;
方法名符合标识符命名规则;
形参列表是实现方法需要传递的参数个数,可以是零个也可以是多个,但是如果是零个的话括号不能省略,有多个形参时不同形参之间用逗号隔开,形参类型可以是基本数据类型也可以是引用数据类型;
方法体负责方法的实现,必须写在大括号里面。
2、方法的调用
方法调用的基本格式是:对象.方法名([实参列表]);
这里有一个简单的例子供大家参考:

public class Calculator {
    public int add(int x, int y) {
        return x + y;
    }
}

public class Main {
    public static void main(String[] args) {
        Calculator calculator = new Calculator();
        int result = calculator.add(1, 2);
        System.out.println(result);  // 输出3
    }
}

在上面的示例中,我们定义了一个 Calculator 类,其中包含一个 add 方法,用于计算两个整数的和。在 Main 类的 main 方法中,我们创建了一个 Calculator对象,并调用了 add 方法来计算1和2的和,最终输出结果3。
3、Tips
1)方法名和参数列表:调用方法时需要使用方法名和参数列表来指定要调用的方法。
2)参数传递方式:Java 中的方法参数传递方式是值传递,即方法接收的是参数值的副本而不是参数本身。如果参数是基本数据类型,则传递的是值的副本;如果参数是对象,则传递的是对象引用的副本。
3)返回值:方法可以返回一个值,也可以不返回值。如果方法返回一个值,则需要使用 return 关键字来返回值。
4)方法重载:Java 允许在同一个类中定义多个方法,它们具有相同的名称但不同的参数列表。在调用方法时,Java 会根据传递给方法的参数类型和数量来确定调用哪个方法。
5)方法覆盖:如果子类中定义了一个与父类中方法具有相同名称、参数列表和返回类型的方法,那么子类中的方法会覆盖父类中的方法。在调用该方法时,Java会优先调用子类中的方法。
6)方法的可见性:Java 中的方法可以使用 public、private、protected 等关键字指定访问修饰符,控制方法的可见性。如果方法的访问修饰符为 private,则只能在当前类中访问该方法。
7)方法的异常处理:如果方法可能会抛出异常,则需要使用 try-catch 语句或 throws 关键字来处理异常。
博主的另一篇文章里面详细介绍了重载相关的知识,欢迎大家来交流:

那么今天的文章到这里就结束了,希望博主写的有关类和对象和类的两大成员的相关内容可以帮助到你,后续博主会持续更新文章未完善的有关类的成员的内容,可以持续关注,点收藏不迷路。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值