开发工具
IDE:软件开发工具,集成开发环境.
免费的IDE当中:Eclipse;
收费的IDE当中:IntelliJ IDEA;
收费的下载:www.jetbrains.com
UItimate:收费,功能较强.
Community:社区版免费,功能较弱.
完整的方法定义格式:
方法就是若干语句的功能集合.方法好比是一个工厂
原料(参数),就是进入方法的数据
返回值(产出物),就是从方法中出来的数据.
访问修饰符 返回值类型 方法名称(参数类型 参数名称 ,.....){
方法体;
return 返回值; 看返回值的类型
}
返回值类型 : 产生的结果是什么类型
参数类型 : 进入方法的数据是什么类型
参数名称 : 进入方法的数据对应的变量名称
return:两个作用,第一是停止当前方法,的第二个是将返回值还给调用处.
返回值,也就是方法执行的结果.
方法的调用格式:
单独调用:方法调用(参数)
打印调用:System.out.println(方法名称(参数));
赋值调用:数据类型 变量名称=方法名称(参数);
此前学习的方法返回值类型固定写为void ,这种方法只能够单独调用,不能进行打印调用或赋值调用.
有参数 : 小括号当中的内容,当一个方法需要一些数据条件,才能完成任务的时候,就是有参数的.
无参数 : 小括号当中留空,一个方法不需要任何数据条件,自己能够独立完成,就是无参数.直接打印输出.
有参数和无参数;
方法的注意事项 :
方法应该定义在类当中,但是不能在方法当中再定义方法,方法不能嵌套使用;
方法定义的前后顺序无所谓,只看调用方法的顺序.
方法定义之后不会执行,如果希望之星,一定要调用,单独调用,打印调用,赋值调用.
方法如果有返回值,那么必须写上return返回值.
return后面的返回指数,必须和方法的返回值类型对应起来.
对于void没有返回值的方法,不能写return后面的返回值,只能写return自己.这时时结束方法的执行.对于方法当中最后一行的return可以不写;
一个方法当中可以有多个return语句,但是必须保证同时只有一个会被执行.
方法重载:
方法名称相同,参数列表不同.传几个参数,调用几个参数的方法.
方法重载与下列因素有关:
参数个数不同
参数类型不同
参数的多类型顺序不同.
sum(double b,int a)
sum(int a, double b)
与下列因素无关:
与参数的名称无关不能根据参数名称重载.
与方法的返回值类型无关.
与修饰符无关.public static.这两个修饰无关.
===============================================
public class FangFa {
public static void main(String[] args) {
//打印矩形.
for (int i = 0; i < 5; i++) {
//执行外面一遍,里面的一遍执行完,在执行外面循环,再来循环里面的循环
for (int j = 0; j < 15; j++) {
System.out.print("w");
}
System.out.println();
}
//错误写法,因为return的是一个int,方法中没有声明.
//void没有返回值的方法,不能写return后面的返回值,只能写return自己
// int a=10;
// int b=12;
// if(a>b){
// return a;
// }else{
// return b;
// }
}
}
---------------------------------------------------------------------------------------
//打印调用
public class Text01 {
public static void main(String[] args) {
//这个return得定义一个值来接受返回的对象
// int s=sum(1,3);
// System.out.println(s);
//输出调用的对象就是方法本身的返回值,直接给输出了出来
System.out.println(sum(10,30));
//直接调用
//对于有返回值的方法,一定需要接收参数输出参数.
int sum = sum(88,12);
System.out.println(sum);
}
public static int sum(int a,int b){
int result=a+b;
return result;//把数据还给调用者.
}
}
------------------------------------------------------------
import java.util.Scanner;
/*
* 定义一个方法:求两个数字之和
* 这种写法不能输入小数,输入的话会报错.
* */
public class Text02 {
//升级成静态的全局的,静态方法只能调用静态成员变量
static Scanner input=new Scanner(System.in);
public static void main(String[] args) {
System.out.println("请输入第一个整数数字");
int a=input.nextInt();
System.out.println("请输入第二个整数数字");
int b=input.nextInt();
sum(a,b);
int result=sum2(a,b);
System.out.println(result);
System.out.println(sum2(a,b));
}
public static void sum(int a,int b){
int result=a+b;
System.out.println(result);
}
//带有返回值的方法
public static int sum2(int a,int b){
return a+b;
}
}
--------------------------------------------------------
import java.util.Scanner;
/*
* 比较两个数是否相同:
*/
public class Text03 {
static Scanner input=new Scanner(System.in);
public static void main(String[] args) {
System.out.println("请输入第一个数字");
int a=input.nextInt();
System.out.println("请输入第二个数字");
int b=input.nextInt();
//必须接受返回值才能输出.
boolean result=isTrue(a,b);
System.out.println(result);
}
//返回值类型是布尔类型的.
public static boolean isTrue(int a,int b){
//1:定义一个变量用来接收可能产生的结果,使用逻辑赋予具体的对应的值.
boolean same;
// if(a==b){
same= true;
}else{
same= false;
}
//2:三元运算符.
boolean same;
//加括号只是为了好看,不加一点问题都没有
same=(a==b)?true:false;
return same;
//3:
// boolean same=(a==b);
// return same;
//4:直接返回的就是一个布尔值.
// return a==b;
}
}
------------------------------------------------------------------
/*
* 求出1到100之间的累加和:
* 典型java逻辑题.
*
*
*/
public class Text04 {
public static void main(String[] args) {
//return必须有值来接收,再输出.
int result=add();
System.out.println("结果是"+result);
}
public static int add(){
//初始化的参数
int x=1;
//需要返回的结果
int sum=0;
for (int i = 0; i <=100; i++) {
//进行累加的操作
sum+=i;
}
//返回值结果
return sum;
}
}
-------------------------------------------------------------
import java.util.Scanner;
/*
* 打印指定次数的HelloWorld
*/
public class Text05 {
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
System.out.println("请输入次数");
int num = sc.nextInt();
//没有返回值,直接调用输出
printCount(num);
}
public static void printCount(int num){
//循环进行的操作
for (int i = 0; i <=num; i++) {
System.out.println("HelloWorld"+"第"+i+"次");
}
}
}
------------------------------------------------------------------
/*
* 方法重载 :
* 方法名称相同,与返回值类型无关,参数列表不相同
* 参数列表中对应相同的类型参数,方法中传入的类型也应该是对应的具体类型.
*
*/
public class Text06 {
public static void main(String[] args) {
System.out.println(sumTwo(10,20));
System.out.println(sumTwo(10.3,20.2,30.3));
System.out.println(sumTwo(10,20,30,40));
}
public static int sumTwo(int a,int b){
return a+b;
}
public static double sumTwo(double d,double e,double f){
return d+e+f;
}
public static int sumTwo(int a,int b,int c,int d){
return a+b+c+d;
}
}
--------------------------------------------------------------
import java.util.Scanner;
/*
* 判断两个数的数据是否相等
* 充分利用了方法的重载.
* 这个方法明确返回值是一个布尔类型.
*
*/
public class Text07 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("请输入第一个数值");
int a = sc.nextInt();
System.out.println("请输入第二个数字");
int b = sc.nextInt();
boolean same = isSame(a, b);
System.out.println(same);
System.out.println(isSame(21, 21));
// 强转为short,因为想调用short对应的方法看一下
System.out.println(isSame((short) 22, (short) 22));
// 赋值为long类型,查看调用方法
System.out.println(isSame(21L, 21L));
}
public static boolean isSame(byte a, byte b) {
System.out.println("两个byte");
boolean same = false;
if (a == b) {
same = true;
}
return same;
}
public static boolean isSame(short a, short b) {
System.out.println("两个short");
boolean same = a == b ? true : false;
return same;
}
public static boolean isSame(int a, int b) {
System.out.println("两个int");
// 不是问好,直接就是一个
return a == b;
}
public static boolean isSame(long a, long b) {
System.out.println("两个long");
if (a == b) {
return true;
} else {
return false;
}
}
}
-----------------------------------------------------
public class Text08 {
public static void main(String[] args) {
// 调用不同的输出语句,自动寻找匹配的参数.
byte sun=30;
myPrint(sun);
short sun1=30;
myPrint(sun1);
int sun2=30;
myPrint(sun2);
long sun3=30;
myPrint(sun3);
double sun4=30;
myPrint(sun4);
float sun5=30;
myPrint(sun5);
String sun6="re";
myPrint(sun6);
myPrint("hello");
myPrint(35.2);
}
public static void myPrint(byte sun){
System.out.println(sun);
}
public static void myPrint(short sun){
System.out.println(sun);
}
public static void myPrint(int sun){
System.out.println(sun);
}
public static void myPrint(long sun){
System.out.println(sun);
}
public static void myPrint(double sun){
System.out.println(sun);
}
public static void myPrint(float sun){
System.out.println(sun);
}
public static void myPrint(String sun){
System.out.println(sun);
}
}