首页 > 基础资料 博客日记

【JavaSE】Java类与对象(一)

2024-10-28 16:00:06基础资料围观50

这篇文章介绍了【JavaSE】Java类与对象(一),分享给大家做个参考,收藏Java资料网收获更多编程知识


一、类的定义与使用

在Java中使用关键字class定义一个类,格式如下:

class 类名{
	// 成员变量/字段/属性
	//成员方法/行为
}

Java中类和c语言中的结构体有点类似,
在Java中类名一般采用大驼峰(每个首字母大写)的形式,并且一个Java文件中就只写一个类
成员变量与一般变量的定义相比要在前面加上访问修饰限定符
方法的定义与前文介绍的方法定义相同。
例如我们定义一个Dog类:

 class Dog {
    public String name;//名字
    public String color;//颜色
 
    // 狗的属性
    public void barks() {
        System.out.println(name + ": 旺旺旺~~~");
   }
    
    // 狗的行为
    public void wag() {
        System.out.println(name + ": 摇尾巴~~~");
   }
}

1.1 访问修饰限定符


这张图片就是反应访问修饰限定符及其作用范围。有许多东西还没介绍过,例如包和子类。在后面会一一介绍,还有default是默认访问修饰限定符,就是不加上访问修饰限定符时的权限。

二、类的实例化

类的实例化就是相当于创建一个对象了(跟c语言创建结构体变量一样),类的实例化通过关键字new来创建。实例化形式就是类名 变量名 = new 类名();
我们上面创建的Dog类来创建一个dog对象。
然后我们就可以通过 变量名.成员 来访问类中的成员变量和方法。

Dog dog = new Dog();
dog.wag();

三、作者对类和对象以及面向对象的理解

就拿人来举例,我认为类就相当于人总称而对象就相当于个人个体,类就像它的名字一样是一类事物共有的东西抽象而出,而对象就是具体的。

面向对象就是通过对象之间互相交互来实现功能,面向过程就是将实现一件事的每一步都一一实现。

就拿洗衣服举例,早些时候洗衣服人们都是,泡水-放洗衣粉-搓洗-清洗,这就像是面向过程一样,事事亲为。而现在就是放衣服进洗衣机,这就是人对象和洗衣机对象交互,具体洗衣过程不去了解 。

四、this引用

官方的一点解释就是:
this引用指向当前对象(成员方法运行时调用该成员方法的对象),在成员方法中所有成员变量的操作,都是通过该引用去访问。只不过所有的操作对用户是透明的,即用户不需要来传递,编译器自动完成。
我的理解就是指出当前对象的成员的引用,防止乱套。例如我们写一个日期类,当我们将设置日期的成员函数的参数与成员变量同名idea就会出错,导致赋值不成功。

但我们如果像下面这样使用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);
   }
}

4.1 this引用的特性

  1. this的类型:对应类类型引用,即哪个对象调用就是哪个对象的引用类型
  2. this只能在"成员方法"中使用
  3. 在"成员方法"中,this只能引用当前对象,不能再引用其他对象

五、构造方法

像我们学习c语言结构体时对成员变量的初始化都是使用成员函数,向上面我们Data类时我们也是定义了一个setDay方法来初始化成员变量,但是在Java中我们就可以使用构造方法来完成这个件事情。构造方法只会在实例化对象时调用一次。

5.1 构造方法定义规则

名字与类名相同,没有返回值类型,设置为void也不行
一般情况下使用public修饰
可以重载
在创建对象时由编译器自动调用,并且在对象的生命周期内只调用一次
如同上面的Data的构造方法定义结构如下:

public Data(int year, int month, int day){
        this.year = year;
        this.month = month;
        this.day = day;
   }

5.2 通过构造方法初始化成员对象

如此在实例化对象时就可以直接传参数来初始化成员对象,
Data data = new Data(2024,5,12);
但是我们此时就不能在像原来不传参的实例化一样调用了,原因在于如果我们自己不写构造方法那idea自己会给我们提供一个不带参的构造方法。如果要调用就要自己实现了。

5.3 idea快捷实现构造函数

1.鼠标右键,然后点击Generate,或者(Alt+Insert)。

2.然后鼠标左击Consructor

3.然后根据需求点击几个参数的构造方法,用Ctrl+鼠标左击。

5.4 构造方法与this引用的联系

如果构造方法中要用this(…)来调用其他构造方法必须放在第一句。且不能形成环,你调用我,我调用你。


文章来源:https://blog.csdn.net/yj20040627/article/details/138713354
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:jacktools123@163.com进行投诉反馈,一经查实,立即删除!

标签:

相关文章

本站推荐

标签云