Java---面向对象---基础

类与对象的概念

面向对象的概念

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

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

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

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

通过new关键字创建对象

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

类与对象

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

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

通俗地说:

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

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

定义类

程序 = 数据  +  算法

类   = 属性  +  方法

类的一般形式

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

类型  变量1;

类型  变量2;

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

// 方法体

}

}

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

类的属性

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

public class Student {

/**

 * 属性 成员变量

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

 */

String  name;

int  age;

double  score;

}

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

类的方法

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

方法的基本语法:

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

//功能代码

}

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

public class Student {

String  name;

int  age;

double  score;

void  study(){

//

}

void  show(){

//

}

}

注意:

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

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

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

对象的声明与创建

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;

stu3.show();

}

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

注意:

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

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

类练习

Teacher类

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

方法:Teach(); Show();

Box类

属性:长、宽、高

方法:计算体积

Dog类:

属性:name color、age

方法:eat()

Cat类:

属性:name color、age

方法:eat()

Triangle类:底、高、计算面积

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

Circle类:半径,计算面积

测试类:Engineer类

为引用变量赋值

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

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

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

方法深入分析

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

方法定义

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

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

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

方法调用

1、实参与形参的概念

2、方法调用的执行过程

参数传递

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

参数传递:

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

引用传递(对象作为参数,本质上是引用变量作为参数)实参会发生改变。

return

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

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

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

(4)可以返回对象。

方法调用

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

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

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

构造器/构造方法

构造方法的语法

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

构造方法的特点:

(1)方法名与类名相同

(2)不能声明返回类型

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

(4)通常为public

注意:

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

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

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

  • 22
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

码来码去(未来可期)

感谢您的打赏,我们一起进步

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值