零基础学java06-方法和面向对象(哆啦A梦发明道具)

15 篇文章 0 订阅
12 篇文章 0 订阅

方法

概述

方法:也可以称为函数。它表示的是一段可以独立运行的代码,具有独立功能。当在程序中需要使用的时候可以通过方法(函数)的名字去调用。

方法是完成特定功能的代码块

有段代码块你写好了,之后需要重复调用,不如给它取一个名字,然后放到一边,之后拿出来重复使用就好了。

就像你把代码块封装成一个道具,下次直接从口袋里拿出来

方法的作用:
1、可以提高程序中代码的复用性(
(1)把以上程序中相似的功能代码,提取出来,重新封装到一个新的功能中。这个新功能可以称为方法(函数)
(结论:使用方法把以上程序中相似的功能代码,提取出来封装)
(2)在使用该功能打印数组的时候直接调用该方法即可。

2、提高程序的可阅读性

从重写写一堆代码变成重复调用一个名字,简洁明了

方法的使用(主要看返回值和参数)

格式:
方法的修饰符 方法的返回值类型 方法名称( 接收的参数类型 参数名 , 接收的参数类型 参数名 …)
{
方法体代码;//具体完成相应功能的代码。
return 返回值; //返回值的类型必须是之前定义方法时所声明的方法的返回值类型
}

定义方法的细节:
1)方法的修饰符:用来修饰方法的一些符号(关键字)。目前针对方法的修饰符,我们先照抄main方法(目前记住 public static) 。

2)方法的返回值类型: 当我们在程序封装了一段独立的代码之后,如果这段代码运行完,需要把一个具体的结果返回给调用者,这时当前这个方法的返回值类型就需要和返回的那个数据保持一致。如果这个方法调用完之后,不需要给调用者返回任何数据,这时方法的返回值类型必须写void。

3)方法的名:它就是前面学习的标识符。我们给独立代码命名需要遵守标识符的规则。就是封装的功能名字。(开发人员自己起名称)。

4)参数列表:当定义一个功能(函数、方法)的时候,需要接受调用者传递进来的数据时,就需要在定义方法的时候,书写对应的参数。
参数:参加运算的数据。
参数的类型:就是前面学习的变量的类型。
参数名:其实就是变量名。
如果不需要接受参数,这时小括号中的参数可以省略,但是小括号不能省略。

5)方法体:就是在方法的大括号中书写代码,这里的代码和以前学习时在main方法中写的代码没有区别,以前在main方法中可以写的任何代码,都可以在自己定义的方法体中书写。

6)返回值:如果方法的返回值类型不是void,则需要在方法的主体中书写return语句,把方法体执行后的结果返回出去。
代码格式: return 返回数据值;
注意:return关键字后面仅能有一个返回值

方法的书写位置:
必须在类的大括号中,不能写在main方法里面,要和main方法在关系上属于并列关系。

在这里插入图片描述

方法的调用

1、直接调用 method();
2、赋值调用 int num=getSum(3,4);
3、打印调用 System.out.println(“结果:”+ getSum(3,4))

面向对象

面向对象是相对于面向过程而言的

面向对象就是把面向过程的那些细节封装起来,集中调用

面向对象和之前所讲的方法一样,都是把一段代码封装起来,就像是制作一个道具。

比如你做了一个道具,大喊一声“求和”,那你在这个求和方法下写的东西就都可以用,是你之前设计好的。

而面向对象和之前的类下面的方法的区别有:

非静态只能用对象名(new一个对象,相当于大喊那个道具名字,或者说召唤)调用,静态(用static修饰的)就可以直接用类名调用。

对象在代码中的体现

既然我们要制作这个道具,就要实现写好它的属性和行为,它多大什么颜色?它具体可以做些什么啊?

比如我们做一个“人”这个道具:

class Person
{
double height; //身高
double weight; //体重
int age; //年龄
char sex; //性别
String name; // 姓名

//描述人这类事物的共性行为
//前面的函数修饰符不用写
void eat()//吃饭
{
}

void sleep()//睡觉
{
}

void study()//学习
{
}
}
我么召唤出之前写好的“人类”,但他具体是哪一个人,我们不知道,我门继续给他丰富起来

Person p = new Person(); //召唤出人类
p.name = “班导”;//具体这个人是怎么样的人,我们自己给他描述
p.sex = ‘女’;

p.eat();
p.sleep();
p.study();

对象的内存解释

对象和数组一样,都是存放在堆内存里面,所以它在创建之后就会有一个相应的地址值。

然后我们每创建的一个新的对象,都有一个对应的地址值,我们开始赋值。

其中:

成员变量:书写在类中的变量(用来描述事物的属性)
局部变量:书写方法体中的变量,还包含方法中的参数变量

局部变量:定义在函数(方法)中的那些变量。局部变量只在定义它的方法(函数)中有效。
成员变量:定义在类的成员位置上的变量。成员变量在整个类中都有效。(全局变量是成员变量的俗称)。

class Car
{
String color; //color为实例变量
static String name; //只要有关键字static修饰,name为类变量
}
说明:不管是成员变量还是局部变量都必须符合变量(标识符)的定义规则

注意:在类中和该类的一个函数中,同时存在一个相同类型相同名称的变量,在函数被执行时,函数中优先使用定义在函数中的变量(局部变量)。

优先级:先使用内部的,再使用外部的(先去内部找,有就使用。没有则再去外部找)就近原则。

在这里插入图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值