Java基础知识(四)

六 面向对象-类和对象

6.1 类与对象的概念

6.1.1 面向对象的概念

面向对象编程:OOP(Object-Oriented Programming)

6.1.2 使用类和对象开发过程的基本步骤

  1. 开发类,类 = 属性(成员变量) + 方法 例如: public class Students { int id; String name ; int age; String sex;

    public void sleep(){ System.out.println("学生在睡觉"); } public void study(){ System.out.println("学生在学习"); }

}

  1. 通过new关键字创建对象 Students fyl =new Students();

     声明          创建
  2. 使用类中的属性和方法:对象.属性名 对象.方法名() fyl.id =1000012; fyl.name="樊亚麟"; fyl.age=21; fyl.sex="男"; System.out.println("学生的名字叫:"+fyl.name); fyl.sleep();

6.1.3 类与对象

(1)类是一种逻辑结构,对具有公共属性特征和行为(功能)的一个群体进行描述。例如可以定义Student类描述学生的公共属性和行为,定义一个Teacher类,描述老师的公共属性和行为。 (2)定义了类之后,就可以根据类创建(new)出一个实例。比如学生张三,老师王老师。 通俗地说: 类定义了一种新的数据类型。对象就是根据类定义的变量。可以将类看做是复合类型。 类是对象的模板(template),对象是类的实例(instance)。因为对象是类的实例,所以经常会看到交换使用“对象”和“实例”这两个词。

定义类

  • 程序 = 数据 + 算法

  • 类 = 属性 + 方法

类的一般形式

class 类名 { //类名通常以大写字母开始 类型 变量1; 类型 变量2; …

类型 方法名(参数列表) { // 方法体 } … }

在类中定义的变量和方法都称为类的成员。所以变量又称为成员变量,方法又称为成员方法。

6.2.2 类的属性

类的成员变量又称为类的属性。 public class Student { /**

  • 属性 成员变量

  • 类的{}内直接声明(定义)的变量 叫 成员变量/实例变量 **/ String name; int age; double score; } 属性属于类的某个具体对象。类的每个实例(即,类的每个对象)都包含这些变量的副本,因此在类中定义的变量又被称为实例变量。

6.2.3类的方法

方法是对象行为特征的抽象,类具有的共性的功能操作,称之为方法。方法是个“黑匣子”,完成某个特定的应用程序功能。 方法的基本语法: 修饰符 返回类型 方法名(形参列表){ //功能代码 } 形参可以为空,可以有多个,形参的类型可以是基本类型也可以是引用类型。 public class Student { String name; int age; double score;

void study(){ // }

void show(){ // } } 注意: 方法中定义变量称为局部变量。 如果没有返回值,则方法的返回类型必须为void 当方法有具体的返回类型时,则必须使用return语句返回一种值。

6.3对象的声明与创建

Students fyl ;//声明

fyl=new Students();//创建对象

Student stu3 = stu2; //将2赋值给3,

注意:

属性属于类的具体对象,不同对象的属性值通常是不同的。

虽然方法也是通过对象调用的,但是各对象共享相同的方法。

6.4 为引用变量变量赋值

//Box b1 = new Box(); //创建对象,让b1指向(引用)所创建的对象

Box b2 = b1;

注意:b1和b2引用同一个对象。

对象引用与对象的关系:

(1)对象引用,有时也称为对象引用变量,或称为引用变量。

(2)对象引用与对象在物理上是两个不同的东西。

(3)对于上图,我们通常说b1引用(有时也称为指向)图中的那个Box对象。

(4)对象只能通过对象引用来操作。有时直接使用对象引用代指对象,例如对于上面的例子,有时会直接将b1引用的对象称为“对象b1”或“”b1对象。

(5)将一个对象引用赋值给另一个对象引用,则两个引用变量指向同一个对象。

(6)对引用变量进行相等性比较,例如b1==b2,是比较两个引用变量是否引用同一个对象,所以b1==b2的结果为true。对对象引用进行相等性比较,有时也直接称为对象的相等性比较。

注意:基本变量与引用变量的区别

基本类型的变量位于栈内存中,引用变量所所引用的变量位于堆内存中。

equal 直接比较的是值

引用类型比较的是地址 比较基本变量的是值

6.5 方法深入分析

方法可以看做是独立的功能模块,供调用模块调用,功能模块要有输入、输出,对于方法而言输入就是方法的参数,输出就是方法的返回值。调用者通过参数将需要输入的数据传递给方法,方法通过返回值将输出返回给调用者。

6.5.1 方法定义

1、方法定义包括:访问修饰符、返回类型、方法名、形参、代码块

2、方法必须有返回类型(构造方法除外),可以省略访问修饰符

3、可以有参数,也可以没有参数

6.5.1 方法调用

1、实参与形参的概念

2、方法调用的执行过程

6.5.2

方法调用中发生的数据传送是单向的。即只能把实参的值传送给形参,而不能把形参的值反向地传送给实参。因此在函数调用过程中,形参的值发生改变,而实参中的值不会变化。

参数传递:

值传递:Swap(int a, int b)方法

引用传递(对象作为参数,本质上是引用变量作为参数)

6.5.3 return

(1)return语句用于明确地从一个方法返回。即,return语句导致程序的执行控制转移回到方法的调用者。

(2)如果return之后还有代码也不会执行。

(3)如果方法的返回类型为void,可以使用return跳出函数,但是不能使用return返回数据。

(4)可以返回对象。

6.5.4 方法调用

因为封装,不能直接访问其他对象的成员变量,通常是调用其他对象的方法。方法调用有两种情况:

调用相同类中的方法:可以直接调用。(本质上是使用this关键字调用)

调用其他类中的方法:对象.方法名

6.6 构造器/构造方法

6.6.1 构造方法的语法

构造方法的作用:开辟内存空间、创建实例、初始化属性值。

构造方法的特点:

(1)方法名与类名相同

(2)不能声明返回类型

(3)不能使用return语句返回值

(4)通常为public

public Student(){

}

注意:

(1)如果没有明确提供构造方法,则系统会提供一个默认的构造方法,默认构造方法(也称为缺省构造方法)没有参数。

(2)如果我们提供了一个构造方法,则系统不再提供无参数的默认构造方法。

(3)如果我们提供了一个有参数的构造方法,同时又需要无参构造方法的话,则必须同时提供一个无参数的构造方法。

构造方法的作用:开辟内存空间,创建实例,初始化属性值

无参构造:你不写,系统默认提供,你写了系统就不会提供;

  • 11
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值