Java面向对象(OOP)
作者:Bright Xu
文章目录
特点
- 封装
- 继承
- 多态
基本概念
类(Class)
-
同一种对象抽象概括
-
完整的类
- 静态属性:变量
- 动态行为:方法
class Student{ // 类名:Student // 静态属性 —— Fields name: String; // 成员变量 height: double; weight: double; // 动态行为 —— 方法 walk(): void; eat(): void; }
-
例:
// Student.java public Student{ public String name; // 成员变量 public double height; public double weight; public void walk(){ // 方法 System.out.println("在走路"); } public void eat(){ System.out.println("在吃饭"); } }
对象(Object)
- 具体的某个事物
类的定义
创建对象
-
声明格式:引用类型变量用来给对象取名
类名 变量名;
// Main.java public class Main { public static void main(String[] args) { Student s1 = new Student(); // 在内存里创建一个Student对象,创建一个s1引用变量,并将s1指向新建的Student对象 s1.height = 180; s1.weight = 100; System.out.println(s1.height); Student s2 = new Student(); s2.height = 170; s2.weight = 90; System.out.println(s2.wdight); s1.walk(); s2.eat(); } }
Java为成员变量
赋默认值
- 整形
int
:0
- 浮点型
double
/float
:0.0
- 布尔型
Boolean
:false
- 引用类型 :
null
(空)
构造方法
构造方法
-
构造方法的作用是创建对象(初始化对象)
Student s1 = new Student(12, "Jack"); // 使用new操作符调用构造方法创建对象 Student s2 = new Student();
class Student{ int id; String name; public Student(int id, String name){ // 有参构造方法 this.id = id; this.name = name; } public Student(){ // 无参构造方法 } }
- 构造方法必须和所在类名称相同。
- 构造方法没有
返回值类型
,甚至没有void
。 - 构造方法是在创建一个对象时由new操作符调用的。
-
默认无参构造方法(编译器)
// 程序员没有定义构造方法,编译器默认给对象创建一个无参构造方法
-
构造方法重载
方法名相同,参数列表不同
Java常见类
Date类
// test_2.java
import java.util.Date;;
public class test_2 {
public static void main(String[] args) {
Date d = new Date();
System.out.println(d);
}
}
Random类
// test_3.java
import java.util.Random;
public class test_3 {
public static void main(String[] args) {
Random r = new Random();
System.out.println(r.nextInt(10));
}
}
static关键字
static作用
- 修饰
成员变量
、常量
、方法
以及代码块
静态成员变量
class Student{
static String name = "Jack";
}
System.out.println(Student.name); // 可以通过类名访问静态成员变量
静态方法
class Student{
static String name = "Jack";
static void foo(){
System.out.println("Hello World!!!");
}
}
Student.foo(); // 可以通过类名调用静态方法
静态方法
只能访问静态成员变量
,不能访问非静态成员变量
。