一、Java面向对象学习的三条主线

  • Java类及类的成员:属性、方法、构造器;代码块、内部类
  • 面向对象的三大特征:封装性、继承性、多态性、(抽象性)
  • 其他关键字:this、super、static、final、abstract、interface、package、import

二、面向对象的两个要素

  • 类:对一类事物的描述,是抽象的、概念上的定义
  • 对象:是实际存在的该类事务的每个个体

(一)设计类,其实就是设计类的成员

  1. 属性 = 成员变量 = field = 域、字段

  2. 方法 = 方法成员 = 函数 = method

  3. 创建类的对象 = 类的实例化 = 实例化一个类

(二)类和对象的使用

  1. 创建类,设计类的成员

  2. 创建类的对象

  3. 通过”对象.属性“或者”对象.方法“调用对象的结构

(三)如果创建了一个类的多个对象,那么每个对象都独立拥有一套类的属性(非static的)

  1. 修改一个对象的属性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. 局部变量

  1. 相同点

  2. 不同点

    2.1 在类中声明的位置不同

    ​ 属性:直接定义在一对{}中

    ​ 局部变量:声明在方法内、方法形参、代码块内、构造器形参、构造器内部的变量

五、类中方法的使用

方法:描述类应该具有的功能。

比如:Math类:sqrt ()\random()...

​ Scanner类:nextXxx()...

​ Arrays类:sort()\binarySearch()...

  1. 举例:

    public void eat(){}

    public String get name(){}

  2. 方法的声明

    权限修饰符 返回值类型 方法名 (形参列表) {

    方法体

    }

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;
    }
}
  1. 说明

    3.1 关于权限修饰符

    Java规定的4种权限修饰符:private、public、缺省、proteced

    3.2 返回值类型

    • 有返回值

      如果方法有返回值,则必须在方法声明时指定返回值的类型。同时,方法中要使用return键字来返回指定类型的变量或者常量。

    • 无返回值

      使用void来表示没有返回值。通常,没有返回值的方法中没有return。有 return的话就用来表示方法结束。

    3.3 方法名:属于标识符,遵循标识符的规则和规范,见名知意

    3.4 形参列表:方法可以声明0个、1个或者多个形参

    ​ 格式:数据类型1 形参1,数据类型2 形参2, ...

  2. return 关键字的使用

    • 适用范围:使用在方法体中
    • 作用:结束方法、返回返回值
    • 注意点:return关键字后面不可以声明执行语句
  3. 方法的使用中,可以调用当前类的属性或者方法

    方法中不能定义方法

posted on 2021-10-13 01:08  滔特特  阅读(38)  评论(0编辑  收藏  举报