专业的JAVA编程教程与资源

网站首页 > java教程 正文

《JavaSE基础》第7篇:面向对象的概述

temp10 2024-10-21 12:18:11 java教程 12 ℃ 0 评论


面向对象的概述

面向对象是把构成问题的事物按照一定规则划分为多个独立的对象,然后通过调用对象的方法来解决
问题

OOA:面向对象分析
OOD:面向对象设计
OOP:面向对象编程

面向对象的三个特点是:封装,继承,多态

类:
    是一种抽象的概念,对某一类事物整体的抽象描述,属性描述和行为描述
对象:
    类的具体表现,独立,唯一的个体

类 = 属性 + 方法

类是的定义:
    [修饰符] class 类名 {
           //类体,包括类的成员变量和成员方法
    }

要求:
    1.修饰符可以是 public,也可以不写(默认)
    2.类名首字母要大写,要符合命名规范
    3.大括号{}的内容是类体,主要包括属性描述和行为描述
    4.属性描述是用来描述当前类的一些特征,也称为【成员变量】 field
    5.行为描述是用来描述当前类可以做到一些事情,也称为【成员方法】 Method
    
类的成员变量属性的格式:
    修饰符 数据类型 变量名;

类的成员变量也称作类的属性,用于描述对象的特征。修饰符为可选项,成员变量在没有手动赋值的
情况下,会有默认值的,其中String的默认值是null

Java中定义类的【成员变量】

class Person {
    //使用String类描述Person类的姓名属性
    String name;

    //使用int类型描述Person类的年龄属性
    int age;

    //使用char类型描述Person类的性别属性
    char gender;
}

Java中定义类的【成员方法/实例方法】

//定义eat方法描述Person类"吃饭方法"                 
public void eat(String food) {      
    System.out.println("吃" + food); 
}                                   

//定义sleep方法描述Person类"睡觉方法"                 
public void sleep() {               
    System.out.println("睡觉");       
}

对象

创建对象的格式:
    类名 对象名/引用 = new 类名();
    Person person = new Person();

解读:
    "new Person()"在堆内存中创建Person类的一个类对象,"Person person"则是在栈内存中声明
    一个Person类型的变量person,中间的等号将Person类对象在内存中的地址赋值给变量person,
    这样变量person就持有了对象的引用。Person类型的变量person被存放在栈内存中,它是一个
    引用,会指向真正的对象;通过 new Person()创建的对象则放在堆内存中,这才是真正的对象。
    可以通过 "引用.属性名" 的方式来访问对象的属性或给属性赋值。
public static void main(String[] args) {
        //这里创建一个Person类对象,对象名为person
        Person person = new Person();
        System.out.println(person);
        /*
         * com.wang.Person@4926097b
         * com.wang 完整的包名
         * Person 数据类型,就是哪个类
         * @4926097b 当前对象在内存空间的首地址,十六进制
         */
        
        Person person1 = new Person();
        System.out.println(person1);
        /*
         * 又创建一个Person类对象,对象名为person1
         * com.wang.Person@762efe5d
         * person和person1对象的内存的首地址不一致,所以不是同一个对象
         */
    }

Java中使用 "类对象/引用" 调用成员变量

访问实例变量的格式:
    引用.实例变量名/成员变量;
    . ==> 表示"的"的意思

空指针异常:NullPointerException
如果没有任何引用指向该对象时,"空引用"访问实例相关的数据,访问该对象的相关数据会出现
空指针异常。
//通过"引用."的方式,调用成员变量
//【赋值】
person.name = "小明";              
person.age = 18;
person.gender = '男';               
             
//【取值】     
System.out.println("Name:" + person.name);
System.out.println("Age:" + person.age);
System.out.println("Gender:" + person.gender);

Java中使用 "类对象/引用" 调用成员方法

访问实例方法的格式:
    类对象/引用.方法名(必要的参数);

//通过"引用."的方式,调用类内的成员方法
person.eat("吃牛排");
person.sleep();

创建对象所对应的JVM内存结构图:

构造方法

构造方法是用来在堆内存中申请一块空间创建对象的,并且可以同时初始化对象中成员变量。当一个类
没有显式的声明构造方法时,系统默认提供一个无参数的构造方法。构造方法的调用就是使用 new 
运算符调用的。

自定义使用构造方法

构造方法的语法格式:
   public 类名(无/参数列表) {
      //在构造方法体中给属性赋值,完成属性的初始化
    }

定义构造方法的要求:
   1.方法名必须与类名相同
   2.在方法名的前面没有返回值类型的声明,void也不能写
   3.在方法中不能使用return语句返回一个值

在一个类中除了可以定义无参数的构造方法外,还可以定义有参数的构造方法,通过有参数的构造方法
就可以实现对属性的赋值。在类中,程序会隐式的声明一个默认的无参构造方法,但是,若我们定义有
参构造,那么无参构造就会被覆盖,必须要再显式的声明一个无参构造方法。
    
与普通方法一样,构造方法也可以【重载】。在一个类中可以定义多个构造方法,只要每个构造方法的
参数类型或参数个数不同即可。在创建对象时,可以通过调用不同的构造方法,来为不同的属性进行
赋值。

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表