Java入门——(4)Java初识类和对象

本文介绍了Java中的类和对象的概念,包括类作为对象模板的定义、对象的实例化以及如何使用new关键字创建对象。文章详细讲解了类的基本构成,如包、import语句、权限修饰符、构造方法和方法,以及this关键字的三种用途。此外,还讨论了按值传递和引用传递的区别,以及类中的变量类型。最后,提到了JavaBean及其特性,强调了其在封装属性和方法中的作用。
摘要由CSDN通过智能技术生成


Java中的类和对象

有了对Java的基本认识之后,我们就可以开始进行了解类和对象啦😁👍。


一、Java中的类和对象

在Java中,类(Class)是用来定义对象(Object)的模板或蓝图,它描述了对象的属性(成员变量)和行为(方法)。对象是类的一个实例,通过创建对象,我们可以使用类中定义的属性和方法。

1.类

把抽象出来的类型用Java表达出来,那就是类class,具有相同性质的一类事物的抽象。
实例化一个类,可以获得属于该类的一个实例(即对象)。

1.类是Java程序的基本构建块,用于封装数据和行为,并实现代码的重用和扩展。
2.类由类名、成员变量、方法和构造方法组成。
3.类中的成员变量描述了对象的属性或状态。
4.类中的方法定义了对象的行为或操作。通过调用对象的方法,可以对对象执行特定的操作。
5.类可以使用访问修饰符(如public、private、protected)来控制成员变量和方法的可访问性。
6.类可以继承其他类,形成父类和子类的关系,从而实现代码的继承和扩展。
7.类可以实现接口,通过接口实现多态性和代码的灵活性。

2.对象

对象是类的一个实例,类的具体化,也称实例对象。实例就是实际例子,塑造出一个例子来。

1.对象是类的实例,通过使用 new 关键字和构造方法,我们可以在程序中创建对类的实例化。
2.对象可以具有各种属性(成员变量),用于描述对象的状态和特征。每个对象都有自己的属性副本,并且可以通过对象访问和修改这些属性。
3.对象可以执行各种操作或行为,这些操作被定义在类的方法中。通过调用对象的方法,我们可以让对象执行特定的行为。
4.每个对象都是独立的实体,具有自己的内存空间和标识。对一个对象的修改不会影响其他对象。
5.在程序中,不同的对象可以通过方法调用和传递消息的方式相互交互。这种交互可以通过对象之间的引用来实现。


二、如何创建和使用类

new关键字

首先我们创建一个类,比如说汽车,然后我们定义属性和方法。

public calss Car{
	//属性:封装数据
	String color;
	int price;
	//方法
	public void run(){
		System.out.println("汽车跑起来了。");
	}
}

在可以使用变量之前,实际内存必须被分配。这个工作是通过使用关键字 new 来实现的。我们可以从一个测试类中进行测试:如下所示:

public class test {
    public static void main(String[] args) {
        Car car1;
		car1 = new Car();  
    }
}

也可以写成一句话:

public class test {
    public static void main(String[] args) {
        Car car1= new Car();
    }
}

关键字new意味着内存的分配和初始化,new调用的方法就是类的构造方法。


使用对象中的属性和方法

要调用对象中的属性和方法,就要使用“.”操作符。
对象创建以后就有自己的属性了,我们通过“.”操作符实现对属性的访问。

public class test {
    public static void main(String[] args) {
        Car car1= new Car();
        car1.run();
    }
}

运行结果:

汽车跑起来了。

整个过程就是:
定义一个类,这个类是一类事物的抽象化,创建对象,也就是实例化对象,这样就可以调用类的方法了。也就是说,类中的属性和方法,对象都是具备的。


二、Java类的基本构成

包是类、接口或其他包的集合,包对类进行有效的管理。利用package进行包的定于。
例如:package ch03.d1;,指明文件中定义的类所在的包。并且包名最好是小写的。


import语句

为了能使用某一个包的成员,我们要在java程序中明确导入该包。import的位置应该位于package后面,可以有一条或者多条。Java运行时通过import找到引用的其他类的路径。

java编译器默认为所有的java 程序引入了JDK的java.lang 包中所有的类(import java.lang.*;),其中定义了一些常用类:System、String、Object、Math 等。因此我们可以直 接使用这些类而不必显式引入。但使用其它非无名包中的类则必须先引入、后使用。


权限修饰符

Java 语言允许对类中定义的各种属性和方法进行访问控制,即规定不同的保护等级来限制对它们的使用。

Java提供了不同的权限修饰符用于控制类、成员变量、方法和构造方法的可访问性。这些权限修饰符包括public、private、protected和默认(不使用任何修饰符)。通过合理使用权限修饰符,可以确保代码的封装性和安全性,并且符合面向对象编程的原则。

具体规则如下:

修饰符同一个类中同一个包中不同包中的子类的对象任何地方
public
protected
无修饰符
private

类定义

Java程序的基本单位是类,有了一个类,就可以用它创建多个对象
类的定义形式如下:

<权限修饰符> [一般修饰符] class <类名> [extends 父类][implements 接口]{
 成员变量
 构造方法
 成员方法
} 

成员变量(属性)

成员变量(也成为属性、实例变量)是指类的一些属性定义,标志类的静态属性。
格式如下:

<权限修饰符> [一般修饰符] 类型 <属性名称> =初始值;

权限修饰符有四种:public、protected、无修饰符和private四种。
一般修饰符:有static、final等等
类型:就是数据的类型,可以是任何类型。
属性名称:标识符
初始值:赋值给属性的初始值,不设置的话会自动进行初始化。


构造方法

构造方法是特殊的方法,它的作用是创建对象并初始化成员变量。在创建对象时会自动调用类的构造方法。

定义规则:
Java中的构造方法必须与该类具有相同的名字,并且没有方法的返回类型(包括void,int等所有返回值类型)。
构造方法一般用puublic类型来说明,那么就可以在任意的地方进行调用。


方法

定义:方法就是对象所具有的动态功能。
Java类中的声明方式格式:

<权限修饰符> [修饰符] 返回值的类型 <方法名称> (参数列表) [throws 异常]{
	方法体
}

访问修饰符:对方法进行限制
返回值类型::表示方法返回值的类型,如果方法不返回任何值,那么他的声明必须为void(空)。
方法名称:合法标识符。
参数列表:允许参数值传递到方法中,并且在调用方法时要传入对应参数。
throws异常列表:以后会介绍到。
例子:

public void run(){
            System.out.println("汽车跑起来了。");
        }

这就是一个简单的方法,比如一开始我们定义的是汽车,汽车可以跑起来,这是他的动作,在类中我们定义他这个动作为run().


this关键字

1.this点取属性

在类属性上定义的变量和方法内部定义的变量相同时,调用谁的呢?
这里就要用到this.取属性了。
也就是说:“this.变量“调用的是当前属性的变量值,直接使用变量名称调用的是相对距离最近的变量的值。
假设我们一开始就定义了

public class Car {
        //属性:封装数据
        String color = "蓝色";
        int price ;
        //方法
        public void color(){
            System.out.println(color);
        }
}

然后通过对象car1改变color的颜色

public class Car {
        //属性:封装数据
        String color = "蓝色";
        int price = 100000;
        //方法
        public void color(){
           String color = "红色";
           System.out.println(color);
           System.out.println(this.color);
        }
}

此时我们得到的颜色是:

红色
蓝色

“this.变量“调用的是当前属性的变量值
直接使用变量名称调用的是相对距离最近的变量的值。也就是常说的就近原则。

2.this点取方法

创建对象之后,可以直接用this.加方法的方式相互调用。

public class Car {
        //属性:封装数据
        String color = "蓝色";
        int price = 100000;
        //方法
        public void color(){
                String color = "红色";
                System.out.println(color);
                System.out.println(this.color);
        }
        public void run(){
                this.color();//调用本类的其他方法
                System.out.println("汽车跑起来了");
        }
}
3.this()调用构造方法

this用在构造方法中可以调用其他的构造器,并且this()必须书写在构造方法的第一句。

//无参的构造方法
        public Car() {
        }

        //有参数的构造方法
        public Car(String color, int price) {
        		this();//调用其他的构造方法
                this.color = color;
                this.price = price;
        }

按值传递&&引用传递

引用类型指向一个对象,指向对象的变量是引用变量。
比如定义的car1就是一个引用类型的变量。
Car car1 = new Car();

1.按值传递

基本数据类型都是按值传递的。
在这里插入图片描述
如果此时对x进行操作:x++,那么此时x = 11,y = 10
两个变量互不影响。

2.引用传递

引用数据类型:按引用(内存地址)传递。

Car car1 = new Car();
Car car2 = car1;
//按引用(内存地址)传递
//两个变量指向同一个内存地址

在这里插入图片描述


类中的变量

1.局部变量

在方法内定义的变量或方法的参数被称为局部变量。

1.局部变量必须先声明,然后才能使用。声明局部变量时需要指定其数据类型。
2.局部变量在声明时可以初始化,也可以先声明后赋值。
3.局部变量只能在声明它的代码块中访问和使用。在代码块外部无法访问局部变量。
4.局部变量在代码块执行完毕后会自动被销毁,其生命周期仅限于所在的代码块。

2.实例变量

在方法外定义的变量主要是实例变量,在创建对象时,就会为该类的所有实例变量分配储存空间。

1.实例变量属于类的实例(对象),每个对象都拥有独立的实例变量。
2.实例变量可以在类的任何非静态方法、构造函数或块中声明,并且可以在整个类的范围内使用。
3.实例变量没有使用 static 关键字进行修饰,因此对于每个对象来说,它们的值是独立的。
4.实例变量具有默认的初始值,例如 int 类型的实例变量默认为 0,boolean 类型的默认为 false,引用类型的默认为 null。

实例变量局部变量
位置属性方法中
初始化有默认初始值没有默认初始值,必须显示初始化
内存堆内存栈内存
内存回收通过垃圾回收器回收通过块的作用域回收
3.实例变量的初始化

在java程序中,任何变量都要经过初始化才可以使用。当一个对象被创建时,实力变啊零分配内存空间时按程序员指定的初始化赋值,否则就按系统默认的初始值进行初始化:

数据类型初始值
byte0
short0
int0
long0L
char‘\u0000’
float0.0F
double0.0D
booleanfalse
所有引用类型null
4.JavaBean

JavaBean是一种符合标准的Java类型,它会将属性封装到getter和setter方法中,以便于其他对象访问和修改他们的值。
JavaBean是一种可重用的组件,会在很多方面使用到。

JavaBean特征:
1.JavaBean具有私有成员变量,属性在JavaBean中通常被声明为private类型,不直接暴露给外部对象的访问。
2.具有公共的getter和setter方法:为了访问和修改对象的属性,通常会定义公共的方法,用于读取和修改属性的值,getter和setter方法通常是一种命名规范,如 getName() 方法;属性的 set 方法通常以 set 开头,如setName() 方法。
3.Java Bean 可以通过实现 Serializable 接口实现序列化,便于在网络传输、分布式系统和持久化存储等场景下进行使用。

总之,Java Bean 是一种符合标准的 Java 类型,具有私有成员变量、公共的 getter 和 setter 方法和序列化支持等特征,可以作为一种可重用、可扩展、易于管理的 Java 组件,被广泛应用于 Java 应用程序中的各个领域。

在idea中可以通过:右键当前要封装的类–>Generate–>getter和setter方法直接快捷生成,构造器和一些常用的toString方法也可以直接创建。
在这里插入图片描述


总结

对Java的类和对象有了一个初步的认识。

描述
开发思想面向对象编程(以对象为中心)
类的构成package
import
public class 类名(){
属性
构造器
方法
}
权限修饰符private 、默认的、protected、public
this关键字this表示本对象,谁调用此方法,谁就是本对象
1、this.属性
2、this.方法()
3、this()
传递1、基本数据类型:按值传递
2、引用数据类型:按引用(内存地址)传递
变量1、 实例变量(属性) 堆内存 有默认初始值
2、 局部变量(块{}中的变量) 栈内存 没有默认初始值

加油💪。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

qiulaizhiwo

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

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

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

打赏作者

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

抵扣说明:

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

余额充值