}
三、类的属性和方法
1、属性
类的属性就是我们在描述某个东西时所指出的这个东西的特点。
比如我们描述笔记本电脑,那么我们基本上会用“品牌”、“颜色”、“内存大小”、“显卡类型”等几个特点来描述它。那么如果这个时候我们把“笔记本电脑”当做一个类的话,那么它的属性就是刚才我们所指出的那几个特点。
2、方法
所谓方法,就是指一类事物的用途、行为或者功能。
还是以刚才我们说的笔记本电脑为例。那么笔记本电脑的用途比如“写文章”、“学习”、“玩LOL”等,就是笔记本电脑这个类的方法。我们可以在程序中去调用这些方法以达到我们的目的。
3、构造方法
在Java中,任何变量在被使用前都必须先设置初值。Java提供的为类的成员变量赋初值的专门方法,就是构造方法。构造方法会在对象被实例化的时候被调用。
注意:构造方法名必须与类名完全一致;构造方法没有返回值类型,连“void”也没有;如果你没有在一个类中定义构造方法,java会自动提供一个没有任何形参的默认的构造方法。
这里我们定义一个简单的“学生类”
```java
public class Student{
private String name;//姓名属性,私有
private int age;//年龄属性,私有
private int score;//学分属性,私有
/**
*构造函数,读取姓名和年龄属性
*/
public Student(String name,int age){
this.name = name;
this.age = age;
}
/**
*定义一个学习方法。每学习一次学分加1
*/
public void study(){
score++;
System.out.println(name+"正在学习中,学分是"+score);
}
}
这就是一个简单的类了。
四、方法重载
有些时候我们可以发现在特定的情况下有些对象会有一些其他对象没有的属性,这就导致有些类没办法通用。而再重新为这仅有的几个对象建立一个类会比较麻烦,这种情况我们就需要用到方法的重载。
1、构造方法的重载
中国古典名著《西游记》中的孙悟空是从石头里跳出来的,而其他所有人都是有父有母。这种情况下我们可以视为孙悟空的属性和其他人物不一样,这就需要在实例化孙悟空这个对象时加入一个不一样的参数。
2、普通方法的重载
每个人都需要吃东西,但是早中晚三餐吃的东西不一样。我们就需要对“吃”这个方法进行重载。
3、方法重载的条件:
方法名必须要完全一致;参数不同(个数、类型、顺序至少有一个不同)。
五、this关键字
1、当参数名和属性名相同的时候,Java会采用就近原则优先使用参数;如果要区分开来,那么可以使用this来区分,加上this.的表示属性,否则表示参数。
2、this(参数值,…);调用当前类中对应参数的构造方法。
注意:this表示当前调用的方法的对象。谁在调用方法,那么方法中的this就表示该对象。
我们现在看一下如何实现方法的重载
public class Student{
private String name;//姓名属性,私有
private int age;//年龄属性,私有
private int score;//学分属性,私有
/**
*构造函数,读取姓名和年龄属性
*/
public Student(String name,int age){
this.name = name;
this.age = age;
System.out.println("有参数的构造方法");
}
# 知其然不知其所以然,大厂常问面试技术如何复习?
**1、热门面试题及答案大全**
面试前做足功夫,让你面试成功率提升一截,这里一份热门350道一线互联网常问面试题及答案助你拿offer
> [**面试宝典+书籍+核心知识获取:戳这里免费下载**](https://gitee.com/vip204888/java-p7)!诚意满满!!!
![](https://img-blog.csdnimg.cn/img_convert/87c93034107b704c2723923baad1f865.png)
**2、多线程、高并发、缓存入门到实战项目pdf书籍**
![](https://img-blog.csdnimg.cn/img_convert/a9a92582739e03e3e98bc8071db39283.png)
![](https://img-blog.csdnimg.cn/img_convert/4e23b4eeaaf92364adfd5b3554b08005.png)
![](https://img-blog.csdnimg.cn/img_convert/3b465378bdaa056c37a8859be2854f7c.png)
**3、文中提到面试题答案整理**
![](https://img-blog.csdnimg.cn/img_convert/971f3d8ef56f1468d990fdef929fb217.png)
**4、Java核心知识面试宝典**
覆盖了**JVM 、JAVA集合、JAVA多线程并发、JAVA基础、Spring原理、微服务、Netty与RPC、网络、日志、Zookeeper、Kafka、RabbitMQ、Hbase、MongoDB 、Cassandra、设计模式、负载均衡、数据库、一致性算法 、JAVA算法、数据结构、算法、分布式缓存、Hadoop、Spark、Storm的大量技术点且讲解的非常深入**
![](https://img-blog.csdnimg.cn/img_convert/87cece793d70e4e450220aeab9d5cde2.png)
![](https://img-blog.csdnimg.cn/img_convert/0a62388a82d1a8f2da4074069e42e60c.png)
![](https://img-blog.csdnimg.cn/img_convert/ce643fb2ebe0ddd392937e2923db23f8.png)
img-eUGUUTBO-1628304506944)]
[外链图片转存中...(img-OjPKdkAG-1628304506946)]
[外链图片转存中...(img-YPYtHVm7-1628304506947)]