1. 编程语言的分类
面向过程/面向对象、动态语言/静态语言和解释型/编译型语言
2. 类和方法
万事万物皆对象。数据可以被拆分,拆分出的特征就是类的属性
😃 面向对象编程主要体现三个特性:封装、继承和多态
2.1 类和对象
- 类是Java最重要的“数据类型”
- 类声明的变量叫对象 -> 类是用来创建对象的模板
类的实现:类声明 + 类体
class 类名{ // 成员变量 // 成员方法 // 类体的内容 }
2.2 成员变量
成员变量的定义与普通变量的定义相同(数据类型 变量名称[ = 值]
)
成员变量其实就是普通的变量,可设初值,也可不设。若不设初始值,则有默认值:
数据类型 默认值 byte, short, int, long 0 float, double 0.0 boolean false char ‘’ 引用类型(例如String) null
举个栗子
public class Bird{
String wing;
String claw;
String beal;
String feather;
}
2.3 成员方法
1)成员方法的定义
方法的定义必须在某个类中
[权限修饰符] [返回值类型]方法名([参数类型 参数名])[throws 异常类型]{
//方法体
return 返回值;
}
- 权限修饰符:
private
,public
,protected
或缺省(只能在本类及同一包中的类中访问) - 返回值类型:任何类型或
void
举个栗子
public void showGoods(){
System.out.println("库存商品信息");
}
public int showGoods(){
System.out.println("库存商品信息");
return 1;
}
2)成员方法的参数
- 实参:调用方法时可以给该方法传递一个或多个值,传给方法的值
- 形参:方法内部,接收实参的变量(只在方法内部有效)
Java中方法的参数主要有3 种:值参数、引用参数和不定长参数
1. 值参数
实参与形参间按值传递;编译器为形参分配存储单元,然后将对应的实参的值复制到形参中
修改形参值,并不会改变实参的值
举个栗子
public class Book{
public static void main(String[] args){
Book book = new Book();
int shelf = 30;
int box = 40;
System.out.println("Put the book in the shelf into the box, " +
"then the total number in the box is " + book.add(shelf, box) +
". \nBook in the shelf: " + shelf + ", book in the original box: " +box);
}
private int add(int shelf, int box){
box = shelf + box;
return box;
}
}
2. 引用参数
在给方法传递参数时,参数类型是数组或其他引用类型
在方法中对参数的修改会反映到原有数组或者其他引用类型上
举个栗子
public class ExchangeRate{
public static void main(String[] args){
ExchangeRate rate = new ExchangeRate();
double[] denomination = {
1, 10, 100};
System.out.println("==== 美元 ====");
for (int i = 0; i < denomination.length; i++){
System.out.println(denomination[i]);
}
rate.change(denomination);
System.out.println("\n==== 人民币 ====");
for (int i = 0; i < denomination.length; i++){
System.out.println(denomination[i]);
}
}
public void change(double[] arr){
for(int j = 0; j < arr.length; j++){
arr[j] = arr[j] * 6.903;
}
}
}
3. 不定长参数
声明方法时,如果有若干个相同类型的参数,可定义为不定长参数。
权限修饰符 返回值类型 方法名(参数类型... 参数名)
(参数类型和参数名间是三个点)
2.4 构造方法
构造方法是与类同名的方法,对象的创建是通过构造方法完成的。
- 当类实例化一个对象时,类都会自动调用构造方法
- 构造方法没有返回类型,也不能定义为void
- 构造方法的作用:初始化对象,把定义对象的参数传给对象