2017.12.1T19_B2_2

本文详细解析了Java中方法的定义与使用,包括方法内的局部变量与全局变量的区别,方法重载的概念以及参数传递机制(值传递与引用传递)。通过具体示例展示了不同数据类型在方法调用过程中的变化。

package com.xdf.test;

public class Student {
 /**
  * 全局变量    在任何方法中都可以访问和使用
  */
 int age = 50;
 String name = "小黑";

 public void showInfo() {
  /**
   * 局部变量名如果和成员变量冲突,默认使用局部变量
   */
  int age = 10;
  String name = "小白";
  System.out.println(age);
  System.out.println(name);
 }

 /**
  * 让用户传递过来一个age和name
  *
  * (int age, String name) 参数列表 (参数个数,参数的类型,参数的顺序)
  * 01.int age , String name  都称之为 形参
  * 02.必须有数据类型
  * 03.实参的参数列表和形参必须一致
  *
  */
 public void showInfo(int age, String name) {
  System.out.println(age);
  System.out.println(name);
 }

}

package com.xdf.test;

public class StudentTest {

 public static void main(String[] args) {
  Student stu = new Student(); // 实例化对象
  stu.showInfo();
  System.out.println("**********************************");
  /**
   * 500   大白"  实际传递的参数 ==》实参
   */
  stu.showInfo(500, "大白");

 }

}

package com.xdf.parameter;

public class ExamDemo {

 public static void main(String[] args) {

  int num = 5;
  int result = changeNum(num);
  System.out.println(result); // 55

  int[] nums = { 10, 20, 30 };
  nums[0] = changeNum(result);
  System.out.println(nums[0]); // 105

  changeNumbers(nums);
  System.out.println(nums[0]); // 5000
 }

 private static void changeNumbers(int[] nums) {
  nums[0] = 5000;
 }

 private static int changeNum(int num) {
  return 50 + num;
 }

}

package com.xdf.parameter;

public class ExamDemo2 {

 public static void main(String[] args) {
  String name = "小黑";
  String[] names = { "小白", "小蓝", "小粉" };

  names[0] = changeName(name);
  System.out.println(names[0]);

  changeNames(names);
  System.out.println(names[1]);

 }

 private static void changeNames(String[] names) {
  names[1] = "小懒";
 }

 private static String changeName(String name) {
  return "小黑521";
 }

}

package com.xdf.parameter;

public class ExamDemo3 {

 public void a() {
  System.out.println("a");
  b();
 }

 public void b() {
  System.out.println("b");
  c();
 }

 public void c() {
  System.out.println("c");
  // a(); StackOverflowError
 }

 public static void main(String[] args) {
  ExamDemo3 demo = new ExamDemo3();
  demo.a();
 }
}

package com.xdf.parameter;

/**
 * 参数的传递:
 *   01.值传递   ===》基本数据类型+String 作为参数传递     传递的都是值           
 *   02.引用传递   ===》引用数据类型                     作为参数传递     传递的内存地址
 */
public class ParameterDemo {

 public static void main(String[] args) {
  int num = 5; // 局部变量
  changeNum(num);
  System.out.println(num);
  System.out.println("**********************");
  String name = "哈哈";// 局部变量
  changeName(name);
  System.out.println(name);
 }

 private static void changeName(String name) {
  name = "嘿嘿";// 局部变量
 }

 private static void changeNum(int num) {
  num = 5000; // 局部变量
 }

}

package com.xdf.parameter;

/**
 *   02.引用传递   ===》引用数据类型              作为参数传递     传递的内存地址
 */
public class ParameterDemo2 {

 public static void main(String[] args) {
  int[] nums = { 10, 20, 30 }; // 引用传递
  changeNums(nums);
  System.out.println(nums[0]);
 }

 private static void changeNums(int[] numbers) {
  numbers[0] = 888;
 }

}

package com.xdf.parameter;

public class Student {

 int age;
 String name;

 public static void main(String[] args) {

  Student stu = new Student();
  stu.age = 50;
  stu.name = "小黑";
  changeStudent(stu);
  System.out.println(stu.age);
  System.out.println(stu.name);
 }

 private static void changeStudent(Student stu) {
  stu.age = 888;
  stu.name = "小白";

 }

}

转载于:https://www.cnblogs.com/xiaoxiao1016/p/7985523.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值