java学习笔记5(方法)
方法:
1.如何创建方法
修饰符 返回值类型 方法名(参数){被封装的代码段}
2.方法的定义和使用的注意事项:
a:方法不能定义在另一个方法里面;
b:方法 名字和方法的参数列表,定义和调用时要保持一致,不能出错;
c:方法的返回值类型为空(void)时,可以省略return不写;调用方法不能写在输出语句中;
d:返回值类型不为空时,return后的数据类型要与定义方法的返回值类型一致,return后面不能再写代码;
求和方法如下:
public class MothedDemo{
public static void main(String[] args){
int sum=sum(3,4);//调用方法sum();
System.out.println("和为"+sum);
}
public static int sum(int x,int y){//定义方法sum();
return x+y;//返回值为x+y;
}
}
3.方法的重载
重载:在同一个类中,方法名相同,参数列表不同。与返回值的类型无关。
参数列表不同包括:1.参数的个数不同;
2.参数的类型不同
重载例子:
public class MothedDemo{
public static void main(String[] args){
int sum=sum(3,4);
double sum1=sum(5,6,7);
double sum2=sum(5,4);//发生了隐式转换,将5,4转换为double类型
System.out.println("和为"+sum);
System.out.println("和为"+sum1);
System.out.println(sum2);
}
public static int sum(int x,int y){
return x+y;
}
public static double sum(double x,double y, double z){
return x+y+z;
}
public static double sum(double x,double y){
return x+y;
}
}
方法重载注意:
参数个数不一样,或者参数类型不一样。
重载和返回值类型无关,和参数名无关。
技巧:重载看方法名和参数列表
方法的参数是基本类型时传递的是值,方法的参数是引用类型时传递的时内存地址;
参数为引用类型的例子:
public class MothedDemo1{
public static void main(String[] args){
int[] arr={1,2,3};
change(arr);
int x=2;
change(x);
System.out.println(arr[1]); //输出结果66
System.out.println(x); //输出结果2
}
public static void change(int[] a){
a[1]=66;
}
/*本例中,change()方法返回值类型为空,但是change()方法的参数为引用型,因此传递的是arr数组的内存地址,
再调用change()方法时,通过地址更改了arr[1]的值,在main方法中与在change()方法中,数组的内存地址时相同的,
因此数组的值彻底改变了,main()方法输出的结果为66;为了对比,我们用一个参数为基本类型的方法来比较*/
public static void change(int x){
/*当方法的返回值类型为空,参数为基本类型时,在调用该方法时,传递的是值2,把2的值改为5,但是void并没有返回值,
因此该方法并不能把重新赋值的5传递回main方法内,main方法在输出时仍输出x原来的值,输出2*/
x=5;
}
}
4.自定义类的概述
用自定义方法实现事物的过程,就是定义类的过程。
自定义类的格式
public class 类名{
//属性定义:
修饰符 数据类型 变量名=值;
//方法定义:
修饰符 返回值类型 方法名(参数列表){
}
}
java学习笔记5(方法)的更多相关文章
- Java学习笔记之---方法和数组
Java学习笔记之---方法与数组 (一)方法 (1)什么是方法? 方法是解决一类问题的步骤的有序组合 方法包含于类或对象中 方法在程序中被创建,在其他地方被引用 (2)方法的优点 使程序变得更简短而 ...
- 0019 Java学习笔记-面向对象-方法
方法属于谁 方法要么属于类,要么属于对象 static修饰的方法属于类 没有static修饰的方法属于对象 方法只能定义在类里面,不能独立定义 不能独立的执行方法,要么通过类调用,要么通过方法调用 一 ...
- Java学习笔记之方法重载,动态方法调度和抽象类
一.方法重载 如果子类中的方法与它的超类中的方法有相同的方法名,则称子类中的方法重载超类中的方法,特别是当超类和子类中的方法名和参数类型都相同时,在子类中调用该方法时,超类中的方法会被隐藏.考虑下面程 ...
- 【原】Java学习笔记008 - 方法(函数)
package cn.temptation; public class Sample01 { public static void main(String[] args) { // 方法/函数 Met ...
- Java学习笔记之方法重载
被重载的方法必须具有不同的参数列表.不能基于不同修饰符或返回值类型来重载方法. package welcome; public class TestMethodOverloading { public ...
- Java学习笔记之——方法重载
方法重载: overload 1. 方法签名 组成:方法名(参数列表) 参数列表不同分为哪些情况? (1)有无参数 (2)参数的类型 (3)参数的个数 (4)参数的顺序(前提是类型不一样) 2.方法重 ...
- Java学习笔记day05_方法重载
1.方法的重载overload 在同一个类中, 允许出现同名的方法, 只要方法的参数列表不同即可. 参数列表不同: 参数个数不同, 参数类型不同, 顺序不同. public class MethodO ...
- Java 学习笔记之 方法内的临时变量是线程安全
方法内的临时变量是线程安全: 方法内部的私有变量,是线程安全的. public class HasSelfPrivateNum { public void addI(String username) ...
- Java学习笔记之方法
前言:如果把所有代码都写到main方法中,后果是什么? 1,结构混乱 不清晰 2,不能重用 方法:规则:方法写在类中,不能写在其它方法中.方法不能嵌套方法 如何定义方法: 访问修饰符 返 ...
随机推荐
- UI基础四:简单的assign block
经常会有需求让在标准的order加个assign block,那就来简单说一下: 1.创建assign block组件ZXXXXXX 2.添加BTORDER节点和GUID属性 3.创建表视图(可配置, ...
- Ping 的TTL理解
http://www.webkaka.com/tutorial/zhanzhang/2017/061570/ 根据自己的扩展重新整理了一下,虽然不是运维,想了解一点东西就希望了解清楚. 一.含义 “T ...
- 九、持久层框架(MyBatis)
一.基于MyBatis的对象关系配置(基于XML方式的配置) 注: MyBatis不能像Hibernate那样,在实体类上配置上注解或者配置xml映射文件,系统启动后就可以自动创建表.因为MyBati ...
- C++ Leetcode Median of Two Sorted Arrays
坚持每天刷一道题的小可爱还没有疯,依旧很可爱! 题目:There are two sorted arrays nums1 and nums2 of size m and n respectively. ...
- nginx配置location总结及rewrite规则写法(1)
1. location正则写法 一个示例: location = / { # 精确匹配 / ,主机名后面不能带任何字符串 [ configuration A ] } location / { # 因为 ...
- zookeeper 的心跳
假定:主机 A, B 通过 tcp 连接发送数据,如果拔掉 A 主机的网线,B 是无法感知到的.但是如果 A 定时给 B 发送心跳,则能根据心跳的回复来判断连接的状态. 以 zookeeper 为例: ...
- 在springboot中用redis实现消息队列
环境依赖 创建一个新的springboot工程,在其pom文件,加入spring-boot-starter-data-redis依赖: <dependency> <groupId&g ...
- 学习笔记-AngularJs(二)
在接下来学习angularjs中,我按照的就是之前 学习笔记-AngularJs(一)所讲的目录来搭建一个学习的项目,做一个互联网大佬人物简介的例子,当然也可以使用angualrjs上面提供的官方例子 ...
- Python自然语言处理---TF-IDF模型
一. 信息检索技术简述 信息检索技术是当前比较热门的一项技术,我们通常意义上的论文检索,搜索引擎都属于信息检索的范畴.信息检索的问题可以抽象为:在文档集合D上,对于关键词w[1]…w[k]组成的查询串 ...
- 【原创】<Debug> QString
[问题1] 'class QString' has no member named 'toAscii' [解答] 把toAscii().data()改成toLatin1().data() 如果QStr ...