目录
一,对象数组
Person[] arr = new Person[3];
Person p = new Person();
之前我们经常使用的数组不止可以拿来储存数字,还可以储存各种各样的数据,包括对象
1.需求:定义一个长度为3的数组,存储3个Person对象,遍历数组,将三个Person对象中的属性值获取出来
创建一个Person类
public class Person {
private String name;
private int age;
public Person() {
}
public Person(String name, int age) {
this.name = name;
this.age = age;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
}
使用快捷键非常快速,先alt+ins生成一个无参的,一个有参的,和get,set方法
现在编写测试类Demo01ObjectArray
public class Demo01ObjectArray {
public static void main(String[] args) {
/*
Person p = new Person();
1.定义一个存储int型数据的数组:int[]
2.定义一个存储double型的数组:double[]
3.定义一个存储String型的数组:String[]
4.定义一个存储Person型的数组:Person[]
*/
//定义数组
Person[] arr = new Person[3];
//创建三个对象
Person p1 = new Person("张三",20);
Person p2 = new Person("李四",22);
Person p3 = new Person("王五",30);
//将三个对象保存到数组中
arr[0] = p1;
arr[1] = p2;
arr[2] = p3;
/*
遍历
当i = 0 arr[0] 就是 p1对象
当i = 1 arr[1] 就是 p2对象
当i = 2 arr[2] 就是 p3对象
*/
for (int i = 0; i < arr.length; i++) {
//Person p = arr[i];
System.out.println(arr[i].getName()+"..."+arr[i].getAge());
}
}
}
先开辟空间,再创建数组对象,调用方法,再将对象保存在数组中,然后遍历显示name和age
二,方法参数
1.基本数据类型做方法参数传递
基本类型做方法参数传递,传递的是值,不是变量本身
方法运行:压栈
方法运行完毕:弹栈 -> 释放栈内存
示例:方法中的值与main方法中的值
public class Demo01Param {
public static void main(String[] args) {
int a = 10;
int b = 20;
method(a,b);
System.out.println(a);//10
System.out.println(b);//20
}
public static void method(int a,int b){
a+=10;
b+=20;
System.out.println(a);//20
System.out.println(b);//40
}
}
运行结果
2.引用数据类型做方法参数传递
引用数据类型做方法参数传递时,传递的是地址值
示例:方法中的值与main方法中的值
public class Demo02param {
public static void main(String[] args) {
int[] arr = {10,20};
method(arr);
System.out.println(arr[0]);//20
System.out.println(arr[1]);//40
}
public static void method(int[] arr){
arr[0]+=10;
arr[1]+=20;
System.out.println(arr[0]);//20
System.out.println(arr[1]);//40
}
}
运行结果
三,命令行参数
通过命令行给main方法的形参传递的实参称为命令行参数
以下演示两种方式给main函数传递实参
第一种:在Notepad++中使用
首先,在你的分区中新建一个文本文档,然后把它命名为TestCommandParam,记得把text改成java,然后保存
输入以下代码进行main函数中参数数组args的遍历
public class TestCommandParam{
//形参:String[] args
public static void main(String[] args){
for(int i=0; i<args.length; i++){
System.out.println("第" + (i+1) + "个参数的值是:" + args[i]);
}
}
}
接下来win+r输入cmd打开命令提示符窗口
注意,这是在运行方式打开的窗口,所以进去后不能直接操作,要先切盘(输入你程序所在的盘符,比如我在E盘就打E:)
然后输入javac TestCommandParam.java
再输入java TestCommandParam ....... ,后面就是要赋的值
第二种:在IDEA里进行赋值
首先创建一个类,输入前面代码
然后点击右上角小锤子右边的方框,选择编辑配置
大部分情况会出现左边一栏没有当前类的情况,但不用担心,选择浏览项目
在搜索框里面搜索当前类点击添加就好,然后点击应用或ok
接下来传参,在这个方框中填写
然后应用或ok
执行
这样有什么用呢?我们以后如果做了一个项目,想测试某些功能,我们可以在页面上设计一个按钮,按钮绑定了这个功能,但这样太麻烦了,需要一个页面,需要服务器,这时就可以用main方法测试。举个栗子:
编一个有参无返回值方法,传两个字符串,在main里面调用方法,并传递args数组的组值
public class Demo04param {
//形参:String[] args
public static void main(String[] args){
method(args[0],args[1]);
}
public static void method(String s1,String s2){
System.out.println(s1+s2);
}
}
用上述方法给main函数赋实参
运行
何不直接写参数呢?在这个情况下确实是脱裤子放屁。
但如果我们的角度不是想测试这个方法可行不可行,而是我们本就想测这个值本身的可行性呢,那就说得通了
四,快速生成方法
1.快速生成方法
初学者要求先定义,再调用;不是初学者,就可以先调用,再定义方法
a.快捷键:alt+回车
这个方法能够生成所有之前提到的四种方法(无参无返回值方法,有参无返回值方法,无参有返回值方法,有参有返回值方法)
所有的只需要按下alt+回车
就自动生成
2.快速将一段代码抽取到一个方法中
a.选中要抽取的方法
b.按ctrl+alt+m
比如以下代码,快速选中你想提取的部分
使用快捷键
点击齿轮小按钮,可以改名,改修饰符
标签:arr,Java,String,--,Person,int,参数,方法,public From: https://blog.csdn.net/THRUSTER11111/article/details/143946823