赞
踩
方法
特点:
1.方法不能嵌套,定义在类中方法外
2.不调用不执行
定义:
1.有返回值类型的方法
修饰符 返回值类型 方法名(参数列表){
处理功能的代码段;
return 返回的结果;
}
修饰符: 访问权限修饰符,先默认为public static
返回值类型: 如果一个方法执行过后需要返回一个结果给调用者,这个方法就应该定义为一个有返回值类型的方法
方法执行过结果的数据类型(基本|引用数据类型)
方法名:方法的名字 调用方法的时候需要根据方法名
标识符符合标识符的命名规范|规则
参数列表:可以没有参数,可以有多个参数
方法定义时候|执行过程中,不确定的数据,可以定义在方法的参数列表上
参数: 数据类型 参数名1,数据类型 参数名2,...(相当于一个局部变量的声明,作用域为当前定义的方法中)
{}: 实现功能的代码
return: 1)返回值数据给方法的调用者 2)提前结束方法
方法的调用: 方法名(参数) -->执行方法中的代码
1.直接调用 方法名(实际参数) -->无法使用返回值
2.赋值调用
3.输出调用 System.out.println(getPI());
2.没有返回值类型的方法
修饰符 void 方法名(参数列表){
方法体语句;
[return;] 可以选择性的添加
}
void:没有返回值类型的方法
return: 提前结束方法
调用方式:
直接调用
参数: 形式参数:形参 -->定义方法时候()中的参数 --> 局部变量的声明
实际参数:实参 -->调用方法时候()中的参数 --> 局部变量的赋值
形参和实参要一一对应
数据类型要一致
顺序要一致
个数要一致
//1.直接调用 getPI();
//2.赋值调用 double d=getPI();
System.out.println(d);
//3.输出调用 System.out.println(getPI());
System.out.println(getSum(3,5));
//直接调用没有返回值类型的方法 print();
print();
print();
print();
getSum2(6,5);
}
//返回一个pi的值 //返回值:需要 double 参数:没有 public static double getPI(){
System.out.println("有返回值类型没有参数的方法");
return 3.1415926;
}
//求两个int整数的和 //返回值:int 参数:int a,int b public static int getSum(int a,int b){
System.out.println("有返回值类型有参数的方法");
return a+b;
}
//打印5行5列的星星 //返回值:不需要 参数:没有参数 public static void print(){
for(int i=1;i<=5;i++){
for(int j=1;j<=5;j++){
System.out.print("* ");
}
System.out.println();
}
}
//求某个返回值的所有整数的和 //返回值:没有 参数:需要 int min,int max public static void getSum2(int min,int max){
if(min>max){
System.out.println("第一个参数必须<=第二个参数");
return;
}
int sum=0;
for(int i=min;i<=max;i++){
sum+=i;
}
System.out.println(sum);
}
求两数的大小
public static void main(String[] args){
System.out.println(getMax(7,3));
}
//获取两个数中的较大值 //返回值:有 int 参数:int x,int y public static int getMax(int x,int y){
return x>y?x:y;
}
//获取int类型数组中的最大值和最小值
//比较两个数据是否相同 //返回值:boolean|String 参数:2个 double public static String equals(double d1,double d2){
String str="";
if(d1==d2){
//return "相等"; str="xiangdeng";
}else{
//return "不相等"; str="buxiangdeng";
}
return str;
}
如何判断有无返回值
问:方法定义完成后,w,h有没有默认值?
没有默认值 方法调用时候,通过实参赋值
程序执行过程当中,方法的内存分析:(数据的来源):
看图片
return:
根据所在不同类别的方法中作用不同
有返回值方法: 1.带出返回值 2.结束方法
没有返回值方法: 1.结束方法
不可达语句:
1.会执行的break出现的语句
2.会执行的return出现的语句
3.死循环后的语句
4.会执行的continue出现的语句
5.while..false中的内容
兼容的问题:
1.形参和实参: 实参<=形参
2.返回值数据的类型,返回值类型,结束数据类型:
接收数据的类型>=返回值类型>=结果的类型
方法的重载:
重载是方法重要的特性
一个类中多个方法,方法名相同,参数列表不同|方法签名不同,这些方法就构成方法的重载特性
方法签名: 方法名+参数列表 方法名(参数)
参数列表不同:
参数的类型不同
参数的个数不同
不同类型的参数的位置|顺序不同
重载方法与修饰符无关
重载方法和返回值类型|有无返回值无关
方法的重载和参数的名字无关
重载方法如何调用:
根据实参进行决定
类中的方法其实是封装的一种体现
方法的重载就是多态的体现
public static void main(String[] args){
//test(1,""); test("",1);
}
public static void test(int a){
System.out.println(" test(int a)");
}
/*public static boolean test(int a){return false;}*/
public static void test(int i,String s){
System.out.println(" test(int i,String s)");
}
public static void test(String s,int x){
System.out.println(" test(String s,int x)");
}
方法的递归:(理解)
/* 自己调用自己递归头: 停止自己调用自己的条件递归体: 自己调用自己临界条件: 递归头递归前进段:从弟子调用自己到临界条件之间递归后推段:结果返回给调用的上一层方法的定义和使用 *****方法的内存分析 理解方法的重载 ***方法的递归(了解)*/
public static void main(String[] args){
//System.out.println(rec(-1));//错误
print(7);//调用并且打印7行
}
//阶乘: 求 某个数的阶乘 5! = 5*4*3*2*1 //返回值:要int 参数:int i public static int rec(int i){
if(i==1){
return 1;
}
return i*rec(i-1);// }
//打印几行乘法表:参数传几,打印前几行乘法表 //返回值:不需要 参数:需要 int i 行数 public static void print(int i){
if(i==1){
System.out.println("1*1=1");
return;
}
print(i-1);
//打印当前行 for(int j=1;j<=i;j++){
System.out.print(j+"*"+i+"="+i*j+"\t");
}
System.out.println();
}
递归的展示图面向过程与面向对象之间的区别:
都是思想,思维方式
面向过程:"我该如何实现?" 然后一步一步完成就可以了
面向对象:"我该找谁来完成?"只关注对象,不关注实现步骤
面向对象是依托于面向过程的
面向对象的优点:
1.可以将复杂的问题简单化
2.更贴近与现实生活的的思维方式
3.面向对象更贴近于管理者的角度,面向过程贴近与执行者
面向对象提出2个概念:
让生活与程序建立联系,类,对象
类: 一系列事物的模板|图纸 ,一系列事物|对象抽取出共性定义在类中,根据这个类创建的对象都具有这些特性
对象: 生活中真实存在的每一个事物 粉色 路虎 先定义类,才能根据类构建对象 先有图纸才有车
自定义类: 1.狗能做什么? 功能: 跑 叫 摇尾巴 跳 动词 -->成员方法定义功能
2.手机都有什么特点|特征? 属性: 品种 颜色 价格 大小 名词 -->成员变量定义属性
class dog{ //成员变量 修饰符 数据类型 变量名;
//不加static的方法就是成员方法
}
//创建一个.java文件建立Phone方法
public class Phone{
//颜色 public String color;
//品牌 public String brand;
//价钱 public double price;
//打电话 public void call(){
System.out.println("从前有一个长得像电话,出门就被打了..."); }
}
//创建文件并用Phone包
public class PhoneTest{
public static void main(String[] args){
//1.创建对象 根据Phone07这个类创建了一个手机对象,对象名是p1|p1代表这个手机对象|根据p1找到使用这个对象
Phone p1=new Phone(); //1个
Phone p2=new Phone(); //2个
Phone p3=new Phone(); //3个
//成员属性不赋值存在默认值
p1.color="粉色";
p1.brand="苹果";
p1.price=10000;
System.out.println(p1.color);
System.out.println(p1.brand);
System.out.println(p1.price);
//使用功能 p1.call();
}
}
因为该Phone包在同文件夹中,所以直接用
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。