一、Java面向对象学习的三条主线
- Java类及类的成员:属性、方法、构造器;代码块、内部类
- 面向对象的三大特征:封装性、继承性、多态性、(抽象性)
- 其他关键字:this、super、static、final、abstract、interface、package、import
二、面向对象的两个要素
- 类:对一类事物的描述,是抽象的、概念上的定义
- 对象:是实际存在的该类事务的每个个体
(一)设计类,其实就是设计类的成员
-
属性 = 成员变量 = field = 域、字段
-
方法 = 方法成员 = 函数 = method
-
创建类的对象 = 类的实例化 = 实例化一个类
(二)类和对象的使用
-
创建类,设计类的成员
-
创建类的对象
-
通过”对象.属性“或者”对象.方法“调用对象的结构
(三)如果创建了一个类的多个对象,那么每个对象都独立拥有一套类的属性(非static的)
- 修改一个对象的属性A,不改变其他对象的属性。
lass Person{
//属性
String name;
int age = 1;
boolean isMale;
//方法
public void eat(){
System.out.println("吃饭");
}
public void sleep(){
System.out.println("吃饭");
}
public void talk(String language){
System.out.println("人说" + language);
}
}
public class PersonTest {
public static void main(String[] args) {
//创建Person类对象
Person p1 = new Person();
//调用对象的结构:属性、方法
//调用属性:对象.属性
p1.name = "Tom";
p1.isMale = true;
System.out.println(p1.name);
System.out.println(p1.isMale);
//调用方法:对象.方法
p1.eat();
p1.sleep();
p1.talk("Chinese");
//******************************************
Person p2 = new Person();
System.out.println(p2.name); //问:会不会报错? 答:不会,输出为null
System.out.println(p2.isMale); //输出为false
//******************************************
Person p3 = p1;
System.out.println(p3.name); //p1和p3指向堆空间的同一个实体
p3.isMale = false; //p1所指对象的属性跟着变
}
}
三、内存解析
四、类中属性的使用
属性(成员变量) vs. 局部变量
-
相同点
-
不同点
2.1 在类中声明的位置不同
属性:直接定义在一对{}中
局部变量:声明在方法内、方法形参、代码块内、构造器形参、构造器内部的变量
五、类中方法的使用
方法:描述类应该具有的功能。
比如:Math类:sqrt ()\random()...
Scanner类:nextXxx()...
Arrays类:sort()\binarySearch()...
-
举例:
public void eat(){}
public String get name(){}
-
方法的声明
权限修饰符 返回值类型 方法名 (形参列表) {
方法体
}
public class Customer {
String name;
int age;
boolean isMale;
public void eat(){
System.out.println("eat");
}
public void sleep(){
System.out.println("sleep");
}
public String getName(){
return name;
}
public String getNation(String nation){
System.out.println("My nation is "+ nation);
return nation;
}
}
-
说明
3.1 关于权限修饰符
Java规定的4种权限修饰符:private、public、缺省、proteced
3.2 返回值类型
-
有返回值
如果方法有返回值,则必须在方法声明时指定返回值的类型。同时,方法中要使用
return
键字来返回指定类型的变量或者常量。 -
无返回值
使用
void
来表示没有返回值。通常,没有返回值的方法中没有return
。有return
的话就用来表示方法结束。
3.3 方法名:属于标识符,遵循标识符的规则和规范,见名知意
3.4 形参列表:方法可以声明0个、1个或者多个形参
格式:数据类型1 形参1,数据类型2 形参2, ...
-
-
return 关键字的使用
- 适用范围:使用在方法体中
- 作用:结束方法、返回返回值
- 注意点:return关键字后面不可以声明执行语句
-
方法的使用中,可以调用当前类的属性或者方法
方法中不能定义方法