【Java基础知识 6】面向对象-类和对象

目录

6.1 类与对象的概念

6.1.1 面向对象的概念

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

6.1.3 类与对象

6.2 定义类

6.2.1 类的一般形式

6.2.2 类的属性

6.2.2 类的方法

6.3 对象的声明与创建

6.4 类练习

6.5 为引用变量变量赋值

6.6 构造器/构造方法

6.6.1 构造方法的语法


6.1 类与对象的概念

6.1.1 面向对象的概念

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

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

对于面向对象编程,主要工作就是编写类。面向对象开发的步骤:

l 开发类,类= 属性(成员变量) + 方法

l 通过new关键字创建对象

l 使用类中的属性和方法:对象.属性名 对象.方法名()

6.1.3 类与对象

(1)类是一种逻辑结构,对具有公共属性特征和行为(功能)的一个群体进行描述。例如可以定义Student类描述学生的公共属性和行为,定义一个Teacher类,描述老师的公共属性和行为。

(2)定义了类之后,就可以根据类创建(new)出一个实例。比如学生张三,老师王老师。

通俗地说:

类定义了一种新的数据类型。对象就是根据类定义的变量。可以将类看做是复合类型。

类是对象的模板(template),对象是类的实例(instance)。因为对象是类的实例,所以经常会看到交换使用“对象”和“实例”这两个词。

6.2 定义类

程序= 数据 + 算法

类 = 属性 + 方法

6.2.1 类的一般形式

class 类名 { //类名通常以大写字母开始

类型 变量1;

类型 变量2;

类型方法名(参数列表) {

// 方法体

}

}

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

6.2.2 类的属性

类的成员变量又称为类的属性。

public class Student {

/**

* 属性 成员变量

* 类的{}内直接声明(定义)的变量 叫 成员变量/实例变量

*/

String name;

int age;

double score;

}

属性属于类的某个具体对象。类的每个实例(即,类的每个对象)都包含这些变量的副本,因此在类中定义的变量又被称为实例变量。

6.2.2 类的方法

方法是对象行为特征的抽象,类具有的共性的功能操作,称之为方法。方法是个“黑匣子”,完成某个特定的应用程序功能。

方法的基本语法:

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

public void study()

//功能代码

}

形参可以为空,可以有多个,形参的类型可以是基本类型也可以是引用类型。

public class Student {

String name;

int age;

double score;

void study(){

//

}

void show(){

//

}

}

注意:

方法中定义变量称为局部变量。

如果没有返回值,则方法的返回类型必须为void

当方法有具体的返回类型时,则必须使用return语句返回一种值。

方法深入分析:

6.3 对象的声明与创建

Student stu1; //声明对象的引用

sut1 = new Student(); //创建对象

public static void main(String[] args) {

Student stu1 = new Student();

stu1.name = "张三"; //访问对象的属性

stu1.age = 20;

stu1.score=95.5;

stu1.show(); //方法调用

Student stu2 = new Student();

stu2.name = "李四"; //访问对象的属性

stu2.age = 22;

stu2.score=98;

stu2.show(); //方法调用

Student stu3 = stu2;

sut2.show();

}

提示:如何使用对象的成员变量和方法

注意:

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

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

6.4 类练习

Teacher类

定义Teacher,属性:姓名,年龄,工资

方法:Teach(); Show();

Box类

属性:长、宽、高

方法:计算体积

Dog类:

属性:name color、age

方法:eat()

Cat类:

属性:name color、age

方法:eat()

Triangle类:底、高、计算面积

Reatangle类:长length、宽width,计算面积area

Circle类:半径,计算面积

测试类:Engineer类

6.5 为引用变量变量赋值

//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。对对象引用进行相等性比较,有时也直接称为对象的相等性比较。

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

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

6.6 构造器/构造方法

6.6.1 构造方法的语法

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

构造方法的特点:

(1)方法名与类名相同

(2)不能声明返回类型

(3)不能使用return语句

(4)通常为public

注意:

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

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

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

传入Student 改变值 指向地址

传入形参 不改变值 复制的值

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值