1.面向对象和面向过程的区别:
(1)面向对象是将功能封装进对象,强调具备功能的对象,以类或者对象为最小单位,考虑让谁来做。
(2)面向过程强调的是功能行为,以函数为最小单位,考虑怎么做。
2.类和对象
类:是对一类事物的描述,是一种抽象的概念。
对象:是类的实例,是实际存在的某种事物的每个个体。
- 面向对象程序设计,重点是对类的设计(设计类的成员)
3.属性
- 属性 = 成员变量 = field = 域、字段
调用方式:“对象.属性”
class Student {
int number;//定义类的属性
int state;
int score;
}
Student s1 = new Student();//创建类的对象
s1.number = 16;//调用对象的属性
s1.state = 6;
s1.score = 98;
- 如果创建了一个类的多个对象,则每个对象都独立拥有一套类的属性(非static)。意味着,如果我们修改一个对象的属性,则不影响另一个对象相同属性的值。
4.属性(成员变量)和局部变量的比较
相同点:
(1)定义变量的格式相同:数据类型 变量名 = 变量值
(2)先声明,后使用
(3)变量都有其作用域
不同点:
(1)在类中声明的位置不同,属性直接定义在{ }中;局部变量声明在方法内、方法形参、代码块、构造器形参、构造器内部的变量。
(2)权限修修饰符的不同,属性可以在声明时指明其权限(private、public、缺省、protected);而局部变量不可以使用权限修饰符。
(3)默认初始化值不同,属性根据其类型都有默认的初始化值;局部变量没有默认的初始化值,所以必须在调用之前先赋值,形参在调用时赋值即可
(4)内存中加载的位置不同,属性加载到堆空间中(非static);局部变量加载到栈空间中
5.方法
方法:描述类应该具有的功能
-
方法(行为)=成员方法 = method = 函数
调用方式:“对象.方法”
例如:Math.random(),即调用Math类中的random方法 -
方法的声明格式:
权限修饰符 返回值类型/void 方法名(形参列表){//形参列表为0个或多个,当有多个时格式为:(数据类型 形参1,数据类型 形参2, ...)
方法体//方法功能的实现
}
public void run(){}//无返回值,无形参
public void study(int hour){}//无返回值,有形参
public String getName(){}//有返回值,无形参
public int getAge(int age){}//有返回值,有形参
public void study() {
System.out.println("studying");
}
public void showAge() {
System.out.println("age:" + age);
}
public int addAge(int i) {
age += i;
return age;
}
s1.study();// 调用对象的方法
s1.showAge();
//当方法中有返回值
//方式一:
int newAge = s1.addAge(2);//定义一个新变量接收方法执行后的结果
System.out.println(newAge);
//方式二:
System.out.println(s1.addAge(2));
5.return关键字
(1)当方法有返回值时,必须使用return关键字,来返回指定类型的变量或常量。
(2)当方法没有返回值时,则无需使用return关键字;如使用,只作用于结束该方法。
(3)return后不可以有执行语句