当前位置: 首页 > news >正文

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 + ": 摇尾巴~~~");}
}

访问修饰限定符

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

类的实例化

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

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

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

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

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

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

this引用

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

this引用正确使用

this引用的特性

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

构造方法

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

构造方法定义规则

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

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

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

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

idea快捷实现构造函数

1.鼠标右键,然后点击Generate,或者(Alt+Insert)。
快捷方式
2.然后鼠标左击Consructor
Consructor
3.然后根据需求点击几个参数的构造方法,用Ctrl+鼠标左击。
点击

构造方法与this引用的联系

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

http://www.lryc.cn/news/347341.html

相关文章:

  • python中的装饰器,例子说明
  • Leetcode经典题目之用队列实现栈
  • DBSCAN聚类算法
  • 【tauri】安装
  • (Java)心得:LeetCode——19.删除链表的倒数第 N 个节点
  • 树莓派安装opencv
  • bert 的MLM框架任务-梯度累积
  • Nginx配置/.well-known/pki-validation/
  • iOS LQG开发框架(持续更新)
  • Python 自动化脚本系列:第3集
  • Matlab-粒子群优化算法实现
  • python 新特性
  • 十一、Redis持久化-RDB、AOF
  • Oracle闪回数据库【Oracle闪回技术】(二)
  • 简单负载均衡
  • Portforge:一款功能强大的轻量级端口混淆工具
  • 1.8. 离散时间鞅-无界停时定理与随机游走
  • Google Pixel4手机刷机+Root+逆向环境详细教程
  • IT项目管理-小题计算【太原理工大学】
  • ARP欺骗使局域网内设备断网
  • Android动画(四):PathMeasure实现路径动画
  • HTTP 连接详解
  • 练习题(2024/5/12)
  • Day50代码随想录动态规划part12:309.最佳买卖股票时机含冷冻期、714.买卖股票的最佳时机含手续费
  • 【软考】scrum的步骤
  • 【C语言】编译与链接
  • Consul 注册的服务地址变成了 127.0.1.1
  • 数字水印 | 离散小波变换 DWT 的 Python 代码实现
  • [框架] Unity 公共执行器
  • 二进制转为HEX数组小工具