在这一节,我们会学习Java类的基本结构(Class structure),变量(variables)以及方法(methods)。如果不能理解这一节所讲的所有细节的话,那也没关系的。因为在后面还会继续详细介绍这些刚开始看起来可能还有点模糊的概念。
首先我们在IntelliJ 里面创建一个新的Project,选择Java,然后不要选择其它额外的选项。继续点击Next.。然后我们需要给Project一个名称。我就命名为JavaBasicClassStructure吧,Project的位置,你可以放在任意你喜欢的位置。我就放在桌面吧,如果目录不存在,它会自动创建一个的。
然后我们创建一个简单的类,代表一个人。 所以类是Java里面最基础的结构了。当定义一个类的时候,我们定义类的各种特性。例如我们定义一个Person类,我们会描述一个人。当我们要使用这个类的时候,我们需要创建一个对象。所以一个类有两个基本元素,其一是字段(field)也成为变量(variable)。以及方法(method)有时候又称为函数(function)。
变量保存变量的状态(states),例如在Person类里面可能是名字(first name)或姓氏(last name)。
然后方法是操作状态的,所以方法是一些我们可以调用的操作。 例如你可以想象一下计算器,在你的计算器上按下加法按钮。就会调用加法操作。
所以我们先要创建一个包,在src目录里创建一个包,按下new package,然后我输入io.zwt,你可以随你喜欢来命名。现在我们又两个包,你现在不用理这些细节的,后面的视频会详细讲解包的。
```java
package io.zwt;
public class Person {
}
```
现在让我们创建一个新的类,然后输入Person。前面已经说了,类只是一种描述或特性,对象的特性。所以这个Person类会有什么,会有Firstname lastname 还有年龄age例如,你还可以添加一些像身份证号码,或者任何你想添加的属性。
所以让我们输入
```java
package io.zwt;
public class Person {
private String firstName;
private String lastName;
private int age;
}
```
所以这些就是我们的类里边的变量,或称字段,
它们描述了我们的类。
当我们定义变量的时候,我们需要定义变量的**类型**。 所以 `age` 是 `int` 类型,
即数字类型。
然后 `firstName` 和 `lastName` 是 `String` 类型,即字符串类型。
让我们给类添加一些方法,对于`Person`类,我们需要`getFirstName`和`setFirstName`
`lastName`和`age`也是一样。让我们添加这些方法。
```java
public String getFirstName() {
return firstName;
}
```
现在先不用担心看不懂这些。各种细节将会在后面详细讲解。
不过上面的就是一个方法。 它返回值的类型是String,然后我们返回firstName。
上面那个返回firstName的方法,我们称为 getter , 它开头是get然后紧接着变量名。例如 getFirstName,getLastName,还有getAge之类的。
方法的声明(declaration)也称为方法签名(signature)那个 `public String getFirstName()`就是方法的签名。 上面的方法签名我们可以看出,这个方法返回的类型是String,然后方法的参数列表(parameter list)为空的。在方法的括号内,我们可以有任意个参数。但是我们这个方法没有参数。
其它的方法当然可以有参数。例如
```java
public void setFirstName(String firstName) {
this.firstName = firstName;
}
```
先别担心 this 关键词的用法,后面的课程会讲清楚的。在上面的方法,我们有参数 firstName,当我们调用这个方法的时候,我们需要指定(形式)参数(parameter),那是提供给要调用的方法的。
这只是一个简单的例子,主要目的是演示一下一个Java类的基本结构。所有这些关于 String、int、方法的细节将会在后面的课程详细讲解。
- 0.考试大纲解读
- 1.内容简介与环境搭建
- 1.1内容简介
- 1.2.在Windows安装JDK8
- 2.Java基础
- 2.1.Java类结构
- 2.2.main方法
- 2.3.注释
- 2.4.package与import
- 2.5.命名冲突与代码格式
- 2.6.静态导入
- 2.7.理解原始数据类型
- 2.8.整数型原始类型
- 2.9.小数型原始类型
- 2.10.原始char与boolean
- 2.11.声明和初始化变量
- 2.12.理解原始类型变量的默认初始化
- 2.13.变量作用范围
- 2.14.类里面元素的顺序
- 2.15.理解null
- 2.16.原始类型的包装类
- 2.17.Java的好处
- 2.18.考试题目举例
- 3.操作符
- 3.1.理解操作符
- 3.2.算术操作符
- 3.3.数值类型提升以及类型转换
- 3.4.一元操作符第一部分
- 3.5.一元操作符第二部分
- 3.6.赋值运算符
- 3.7.复合赋值运算符
- 3.8.关系操作符
- 3.9.关系操作符
- 3.10.相等操作符
- 3.11.理解 == 与 equals()方法
- 3.12.字符算术运算
- 3.13.考试题目举例
- 4.基本程序控制流
- 4.1.if else语句
- 4.2.三元操作符
- 4.3.switch语句
- 4.4.while循环
- 4.5.do-while循环
- 4.6.for循环
- 4.7.考试题目举例
- 5.理解字符串类型
- 5.1.创建字符串以及字符串连接
- 5.2.理解不可变性
- 5.3.字符串常量池和字符串相等
- 5.4.String类的方法第一部分
- 5.5.String类的方法第二部分
- 5.6.方法串联
- 5.7.使用StringBuilder类
- 5.8.StringBuilder类的方法
- 5.9.理解相等性
- 5.10.考试题目举例
- 6.数组
- 6.1.理解数组
- 6.2.使用数组
- 6.3.数组常见的问题
- 6.4.For-each循环
- 6.5.break语句和标签
- 6.6.continue语句
- 6.7.数据排序
- 6.8.搜索数组
- 6.9.可变数量参数
- 6.10多维数组
- 6.11嵌套循环
- 6.12考试题目举例
- 7.ArrayList
- 7.1.理解ArrayList
- 7.2.ArrayList的方法第一部分
- 7.3.ArrayList的方法第二部分
- 7.4.在ArrayList使用包装类
- 7.5.ArrayList与数组之间的转换
- 7.6.ArrayList元素排序
- 7.7.搜索ArrayList
- 7.8.遍历List第一部分
- 7.9.遍历List第二部分
- 7.10.考试题目举例
- 8.方法
- 8.1.设计一个方法
- 8.2.方法的返回类型
- 8.3.方法的参数列表
- 8.4.带有数量可变参数的方法
- 8.5.访问修饰符
- 8.6.静态方法和字段
- 8.7.使用静态方法和字段第一部分
- 8.8.使用静态方法和字段第二部分
- 8.9.final方法
- 8.10.静态初始化
- 8.11.在方法之间传输数据
- 8.12.方法的返回数据
- 8.13.重载方法
- 8.14.考试题目举例
- 9.类设计
- 9.1.类的构造函数
- 9.2.默认构造函数
- 9.3.构造方法重载
- 9.4.this 与 this()的区别
- 9.5.初始化的顺序
- 9.6.数据封装
- 9.7.不可变类
- 9.8.类与继承第一部分
- 9.9.类与继承第二部分
- 9.10方法重写
- 9.11.super 与 super()的区别
- 9.12.重载与重写的区别
- 9.13.抽象类
- 9.14.抽象方法
- 9.15.创建接口
- 9.16.实现接口
- 9.17.接口的默认方法
- 9.18.接口的静态方法
- 9.19.抽象类与接口的区别
- 9.20.多态
- 9.21.虚方法
- 9.22.参数多态
- 9.23.考试题目举例
- 10.Java 8的日期和时间API
- 10.1.创建日期与时间
- 10.2.使用日期与时间
- 10.3.Periods
- 10.4.格式化日期和时间
- 10.5.解释日期和时间
- 10.6.考试题目举例
- 11.异常处理
- 11.1.理解异常处理
- 11.2.Checked 与 Unchecked 异常的区别
- 11.3.处理异常
- 11.4.使用finally语句块
- 11.5.捕获不同的异常
- 11.6.return 和 finally块
- 11.7.抛出异常的方法
- 11.8.考试题目举例
- 12.简单的Lambda表达式
- 12.1.理解Lambda
- 12.2.使用Lambda
- 12.3.Predicates
- 12.4.考试问题举例
- 13.福利
- 13.1.Anki记忆卡片