Java基础+进阶
Mew传说
2021年07月31日 08:14

public class 文件名 {

public static void main(String[] args){

方法名称();

System.out.println(“Hello World!”); //打印输出语句

====if else语句:

int age =16;

if (age >=18){

System.out.println("进入网吧");

}判断条件

else if (age>12){

System.out.println("买小吃");

}

else{

System.out.println("回家吃饭");

}

====switch语句:

int num = 1;

switch (num){

case 1:

System.out.println("星期一");

break;

case 2:

System.out.println("星期二");

break;

case 3:

System.out.println("星期三");

break;

…………

default:

System.out.println("数据不合理");

break;//最后一个break语句可以省略但是强烈建议不要省略。

}

====for循环:

for(int i = 1;i <= 100;i++){

System.out.println("?" + i);

}

System.out.println("停止");

………………

for(int j = 0;j <= 5;i++){

for(int i = 0;i<= 20;i++){

System.out.print("*" );//println去ln可以不换行

}

}

System.out.println();//换行

====while 和 do while循环:

int i = 1;

while(i <= 10){

System.out.println("?" + i);

i++;

}

int i = 1;

do{

System.out.println("?" + i);

i++;

}while (i <= 10);

}

}

int 名字=(int)数字 强制转换成int

int result 1=x(不能是常量)++;

==等于,!=不等于,&&0与,||或,!取反,%=看余数 (num % 2 ==0)//除以2余数为0

int max = a > b ? a : b;或者System.out.println(a > b ? a : b);

变量名称=条件判断?表达式A:表达式B; //a > b ? a : b如果成立为true,那么将表达式A的值赋予左侧变量,反之怡然

break 打断、continue 跳过

if (i == 4){

break; 或者 continue;

}

==============

三要素:返回值、方法名称、参数列表

public class 文件名 {

public static void main(String[] args){

int number=sum(a:15,b:25);//赋值调用

number += 100;

System.out.println("变量的值"+nember);

}

public static int sum(int a,int b){

System.out.println("执行" );

int result = a + b;

return result;//输出结果为:140

}

}

public class 文件名 {

public static void main(String[] args){

method1(a:10,b:20);//赋值调用

System.out.println("========");

method2();

}

//两个书相乘

public static int method1(int a,int b){

int result = a * b;

System.out.println(结果是:"+resultr);//输出结果为200

//固定运行十次

public static void method2()(String[] args){

for(int i = 0;i < 10,i++){

System.out.println("Hello,World"+i);

}

}

}

}

void 方法下面不能写 return result;

对于有返回值的方法,可以使用单独调用、打印调用或者赋值调用。但没有返回值的方法,只能使用单独调用。

public class 文件名 {

public static void main(String[] args){

//我是mian方法,我来调用你,你来帮我计算,算完后把结果告诉我的num变量。

int num = getSum(a:10,b:20);

System.out.println("返回值是:"+ unm);

System.out.println("=======");

prinSum(a:100,b:200);

}

//负责两个数字相加。返回值int,谁调用的就把结果告诉谁。

public static int getSum(int a,int b){

int result = a+ b;

return result;

}

//负责两个数字相加,应为没有返回值,我只能自己打印输出。

public static void main(String[] args){

int result = a + b;

System.out.println("结果是:"+ result);

}

}

//判断两个数字是否相同

public class 文件名 {

public static void main(String[] args){

System.out.println(isSame(a:10,b:20));//false

System.out.println(isSame(a:20,b:20));//true

}

public static boolean isSame(int a,int b){

return a == b;

}

}

返回值:有返回值,计算结果是一个int数字

方法名称:getSum

参数列表:数据范围已确定,不需要告诉我任何条件,不需要参数

public class 文件名 {

public static void main(String[] args){

System.out.println("结果是:"+ gerSun/*方法名称*/());

}

public static int gerSum(){

int sum = 0;

for(int i = 1;i <= 100;i++){

sum += i;

}

return sum;

}

}

1.方法应该定义在类当中,但不能在方法当中在定义方法,不能嵌套。

2.方法定义的前后顺序无所谓。

3.方法定义之后不会执行,如果希望执行,一定要调用:单独调用、打印调用、赋值调用。

4.如果方法有返回值,必须写上“return 返回值;”,不能没有。

5.return后面的返回值数据,必须和方法的返回值,对应起来。

public static int method1(){

return 10;//√

return 10.0;//×

}

6.void 方法下面不能写return后面的返回值,只能些自己。

public static void method2(){

return;//√

return 10;//×

}

7.对于void方法当中最后一行的return可以不写。

8.一个方法当中可以有多个return语句,但必须保证只有一个会被执行到。

public static int method1(){

if(a >b){

return a;

}else{

return b;

}

Overload 重载

方法重载玉下列因素相关:

1.参数个数不同

2.参数类型不同

3.参数的多类型顺序不同

方法重载玉下列因素无关:

1.与参数的名称无关

2.与方法的返回值无关

public class 文件名 {

public static void main(String[] args){

System.out.println(sum(a: 10,b: 20));

System.out.println(sum(a: 10,b: 20,c: 30));

}

public static int sum(int a,int b){

System.out.println("有2个参数的方法执行!");

return a + b;

}

public static int sum(int a,int b,int c){

System.out.println("有3个参数的方法执行!");

return a + b + c;

}

public static int sum(double a,double b){

System.out.println("有2个参数的方法执行!");

return (int) (a + b);

}

//错误写法

public static int sum(int x,int y){

System.out.println("有2个参数的方法执行!");

return x + y;

}

//错误写法

public static double sum(int a,int b){

System.out.println("有2个参数的方法执行!");

return a + b;

}

}

比较两个数据是否相等。

参数类型分别是两个byte,两个short,两个int,两个long,并在main方法中进行测试。

执行方法不一样。

public class 文件名 {

public static void main(String[] args){

byte a = 10;

byte b = 20;

System.out.println(isSame(a,b));

System.out.println(isSame((short)20,(short)20));

System.out.println(isSame(a:11,b:12));

}

System.out.println(isSame((short)20,(short)20));

System.out.println(isSame(a:10L,b:10L));

}

public static boolean isSame(byte a,byte b){

System.out.println("两个byte参数的方法执行!");

if (a==b){

dame = true;

}else{

same = false;

}

return same

}

}

public static boolean isSame(short a,short b){

System.out.println("两个short参数的方法执行!");

return = 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;

}

}

}

open 重载

在调用输出语句是,println方法其实就是进行了多种数据的重载形式。

public class 文件名 {

public static void open(){}

public static void open(int a){}

public static void open(int a,int b){}

public static void open(short a,short b){}

}

public class 文件名 {

public static void main(String[] args){

myPrint(num:100);//int

myPrint(str:"Hello");//String

}

public static void myPrint(byte/short/int/ling/fooat/double/char){

System.out.println(num);

}

public static void myPrint(char zifu){

System.out.println(zifu);

}

public static void myPrint(boolean is){

System.out.println(is);

}

public static void myPrint(String str){

System.out.println(str);

}

}

//

1.数组是一种引用数据类型。

2.数组当中的多个数据类型必须统一。

3.数组的长度在程序的运行期间不可改变

数组的初始化,在内存当中创建一个数组,并且想其中赋予一些默认值。

两种常见的出事话方式:

1.动态初始化(指定长度)

2.静态初始化(指定内容)

使用建议:

如果不确定数组当中的具体内容,用动态初始化;确定就用静态初始化。

动态初始化数组的格式:

数组类型[] 数组名称 = new 数组类型[数组长度];

public class 文件名 {

public static void main(String[] args){

//创建一个数组,里面可以存放300个int数据

int[] arrayA = new int[300];

//创建一个数组,里面可以存放10个double数据

  double[] arrayB = new double[10];

//创建一个数组,里面可以存放5个字符串

  String[] arrayC = new String[5];

}

}

静态初始化数组的格式:

数组类型[] 数组名称 = new 数组类型[]{元素1,元素2,…};

public class 文件名 {

public static void main(String[] args){

//创建一个数组,里面装的全是int数字,具体为:5、15、25

int[] arrayA = new int[]{5,15,25};

//创建一个数组,用来装字符串,“Hello”、“Word”、“Java”

  String[] arrayB = new String[]{“Hello”,“Word”,“Java”};

}

}

静态初始化数组的省略格式:

数组类型[] 数组名称 = {元素1,元素2,…};

1.静态初始化没有指定长度,但任然会自动推算长度。

2.静态初始化标准格式可以拆分成两个步骤。

3.静态初始化一旦使用了省略格式,就不能拆分成两个步骤了。

4.动态初始化也可以拆分成两个。

public class 文件名 {

public static void main(String[] args){

//省略格式的静态初始化

int[] arrayA ={5,15,25};

 //静态初始化的标准格式,可以拆分成两条

int[] arrayB;

arrayB = new int[]{10,20,30};

int[] arrayC;

arrayC = new int[5];

}

}

===========

Java内存需要划分5个区域:

1.栈(Stack):存放的都是方法中的局部变量。方法的运行一定要在栈当中。

局部变量:方法的参数,或者是方法{}内部的变量

作用域:一旦朝珠作用域,立刻从栈内存当中消失。

2.堆(Heep):凡是new出来的东西,都在堆当中。

堆内存里面的东西都有一个地址值:16进制

堆内存里面的数据,都有一个默认值。规则:

如果是整数类型,默认值为0;

如果是浮点类型,默认值为0.0;

如果是字符类型,默认值为'\u000';

如果是布尔类型,默认值为false;

如果是引用类型,默认值为'null'。

3.方法区(Method Area):存储.class相关信息,包含方法的信息。

4.本地方法栈(Native Method Stack):与操作系统相关。

5.寄存器(pc Register):与CPU相关。

public class 文件名 {

public static void main(String[] args){

int[] array = new int[3];

array[1] = 10;

array[2] = 20;

System.out.println(array);//地址值

  System.out.println(array[0]);//0

  System.out.println(array[1]);//10

  System.out.println(array[2]);//20

}

}

获取数组长度,格式

数组名称.Length

public class 文件名 {

public static void main(String[] args){

int[] arrayA = new int[3];

System.out.println(arrayA.length);

int[] arrayB = {10,20,30,51,5,3,51,42,6}

int len = arrayB.length;

System.out.PRintln("arrayB数组的长度是:" + len);

}

}

求出最大值:

public class 文件名 {

public static void main(String[] args){

int[] array = {10,20,50,40,30}

for (int i = 1,i < array.length;i ++){

if (array[] > max){

max = array[i];

}

}

System.out.println("最大值是:" + max);

}

}

数组元素反转:

public class 文件名 {

public static void main(String[] args){

int[] array = {10,20,30,40,50}

for (int i = 0,i < array.length;i ++){

System.out.println(array[i]);

}

for (int i = 0,i < array.length;i ++){

inr temp = array [min];

array[min] = array[max];

array[max] = temp;

}

for (int i = 0,i < array.length;i ++){

System.out.println(array[i]);

}

}

}

数组可以作为方法的参数。

当调动方法时,向方法的小括号进行传参,传递进去的其实是地址值。

public class 文件名 {

public static void main(String[] args){

int[] array = {10,20,30,40,50};

printArray(array);

System.out.println(array"====AAA====");

printArray(array);

System.out.println(array"====BBB====");

}

public static void main(String[] array){

for (int i = 0,i < array.length;i ++){

System.out.println(array[i]);

}

}

}

任何数据类型都能作为方法的参数类型,或者返回值类型。

数组作为方法的参数,传递进去的其实是数组的地址值。

数组作为方法的返回值,返回的其实也是数组的地址值。

public class 文件名 {

public static void main(String[] args){

int[] result = calculate(a:10,b:20,c:30);

System.out.println("main方法内部数组是:");

System.out.println(result);

System.out.println("总和:" + resule[0]);

System.out.println("平均数:" + resule[1]);

}

public static void main(String[] array){

int sum = a + b + c;

int agv = sum / 3;

int[] array = {sum,avg};

System.out.println("calculate方法内部数组是:");

System.out.println(array);

return array;

}

}

=========

面向过程:每一个具体的步骤都要亲力亲为,详细处理每一个步骤和细节。

面向对象:不关心具体步骤,而是找一个已经具有该功能的人来做事。

public class 文件名 {

public static void main(String[] args){

int[] array = (10,20,30,40,50);

//要求打印格式:[10,20,30,40,50]

//面向过程:每一个具体的步骤都要亲力亲为。

System.out.println("[");

for (int i = 0,i < array.length;i ++){

if (i == array.length - 1){

System.out.print(arry[i] + "]")

}else{

System.out.print(array[i] + ",");

}

}

System.out.print("================");

//使用面向对象

//我一个JDK给我们提供好的Arrays类,

//其中一个toString方法,直接就能把数组变成想要的格式的字符串。

System.out.print(Arrays.toString(array));

}

}

定义一个Student

注意事项:

1.成员变量是直接卸载类当中的,在方法外边。

2.成员方法不要写static关键字。

public class 文件名 {

String name;

int age;

public static void eat(){

System.out.println("吃饭");

}

public static void sleep(){

System.out.println("睡觉");

}

public static void sleep(){

System.out.println("学习");

}

}

通常情况下,一个类并不能直接使用,需要根据类创造一个对象,才能使用。

1.导包:也就是支出需要使用的类,在什么位置。

import 包名称.类名称;

import cn.itcast.day06.demo01.Student;

对于和一个当前类属于一个包的情况。可以省导包语句不写。

2.创建,格式:

类名称 对象 = new 类名称();

Student stu = new Student();

3.使用,分两种:

使用成员变量:对象名.成员变量名

使用成员方法:对象名.成员方法名(参数)

(也就是,想用谁,就用对象名点谁。)

public class 文件名 {

public static void sleep(){

//1.导包。

//我需要使用的Student类,和我自己文件位于同一包下,所以省略导包语句不写

//2.创建,格式:

//类名称 对象名 = new 类名称();

//根据Student类,创建了一个名为stu的对象

Student stu = new Student();

//3.使用其中的成员变量,格式:

//对象名.成员变量名

System.out.println(stu.name);

System.out.println(stu.age);

System.out.println("");

//改变对象当中的成员变量数值内容

//stu.将右侧的字符串,赋值交给stu对象当中的name成员变量

name = "刘亦菲";

stu.age = 18;

System.out.println(stu.name);

System.out.println(stu.age);

//4.使用对象的成员方法,格式:

//对象名.成员方法名()

stu.eat();

stu.sleep();

stu.study();

}

}

定义一个类,用来模拟“手机”事物。

属性:品牌、价格、颜色

行为:打电话、发短信

public class Phone {

//成员变量

String brand;//品牌

double price;//价格

String color;//颜色

//成员方法

public void call(String who){

Stsytem.out.println("给"+ who + “打电话”);

}

public void sendMessage(){

Stsytem.out.println("发短信”);

}

}

//创建一个类

public class PhoneSame {

public static void main(String[] args){

Phone one = new Phone();

Phone one = new Phone();

Stsytem.out.println(one.brand);//null

Stsytem.out.println(one.price);//0.0

Stsytem.out.println(one.color);//null

Stsytem.out.println("=========");

one.brand = "苹果";

one.price = 8388.0;

pne.color = "黑色";

Stsytem.out.println(one.brand);//苹果

Stsytem.out.println(one.price);//8388.0

Stsytem.out.println(one.color);//黑色

Stsytem.out.println("=========");

one.call(who:“乔布斯”);

one.sendMessage();

Stsytem.out.println("=========");

//将one当中保存的对象地址值赋给two

Phone tow = one;

Stsytem.out.println(one.brand);//null

Stsytem.out.println(one.prince);//0.0

Stsytem.out.println(one.color);//null

Stsytem.out.println("=========");

two.brand = "三星";

two.price = 5999.0;

pne.color = "蓝色";

Stsytem.out.println(two.brand);//苹果

Stsytem.out.println(two.price);//8388.0

Stsytem.out.println(two.color);//黑色

Stsytem.out.println("=========");

two.call(who:“乔布斯”);

two.sendMessage();

}

}

//新建一个类

public class PhoneParam {

public static void main(String[] args){

Phone one = new Phone();

one.brand = "苹果";

one.price = 8388.0;

pne.color = "黑色";

method(one);//传出去的其实是地址 值

}

public static void method(Phone param){

Stsytem.out.println(param.brand);//苹果

Stsytem.out.println(param.price);//8388.0

Stsytem.out.println(param.color);//黑色

}

}

//新建一个类

public class PhoneReturn{

public static void main(String[] args){

Phone two = getPhone();

Stsytem.out.println(two.brand);//苹果

Stsytem.out.println(two.price);//8388.0

Stsytem.out.println(param.color);//黑色

}

public static void method(Phone param){

Stsytem.out.println(param.brand);//苹果

one.brand = "苹果";

one.price = 8388.0;

pne.color = "土豪金";

return one;

}

}

局部变量和成员变量

1.定义的位置不一样【重点】

局部变量:在方法的内部、成员变量:在方法的外部,直接写在类当中

2.作用范围不一样【重点】

局部变量:只有方法当中才可以使用

成员变量:整个类都可以通用

3.默认值不一样【重点】

局部变量:没有默认值,如果要想使用,必须手动进行赋值

成员变量:如果没有赋值,会有默认值,规则和数组一样

4.内存的位置不一样(了解)

局部变量:位于栈内存

成员变量:位于堆内存

5.生命周期不一样(了解)

局部变量:随着方法进栈而生,出栈而亡

成员变量:随着对象创建而生,随着对象进垃圾桶而小时

/

面向对象三大特征:封装。继承。多态。

封装性在java当中的体现:

1.方法就是一种封装

2.关键字private也是一种封装

public class PhoneReturn{

public static void main(String[] args){

int[] array = {5,15,20,100};

int max = getMax(array);

System.out.print("最大值:" = max);

}

//给我一个数组,我换你一个最大值

public static void method(Phone param){

int max = array[0];

for(int i = 1;i < array.length;i++){

max = array[i];

}

return max;

}

}

问题描述:定义person的年龄时,无法组织不合理的数值设置进来。

解决方案“:用private关键字将需要保护的成员进行修饰。

一旦使用了private进行修饰,那么本类当中仍然可以随意访问,但是!超出了本类范围之外就不能再直接访问了。

间接访问private成员变量,就是定义一堆Getter/Setter方法

必须叫setXxx或者是getXxx命名规则。

对于Getter来说,不能有参数,返回值类型和成员变量对应;

对于Stter来说,不能有返回值,参数类型和成员变量对应。

public class Person{

String name;//姓名

private int age;//年龄

public void show(){

System.out.println("我叫:" + name = "年龄:" = age);

}

//这个成员方法,专门用于向age设置数据

public void setAge(int num){

if (num <120 && num>= 9){

age = num;

}else{

System.out.print("数据不合理!" );

}

}

//这个成员方法,专门用于获取age的数据

public int setAge(int num){

return age;

}

}

//创建一个类

public class Student{

private String name;

public static void main(String[] args){

person person = new person ();

person.show();

person.name = "wwd";

//person.age = -20;//方法错误

person.setAge(20);

person.show();

}

}

//创建一个学生类

对于基本类型当中的boolean值,Getter方法一定要写成isXXX的形式,而setXXX的规则不变。

public class Student{

private String name;//姓名

private int age;//年龄

private boolean male;//是不是爷们

public void setMale(boolean b){

male = b;

}

public boolean isMale(){

return male;

}

public void setName(String str)){

name = str;

}

public void gatName(){

return name;

}

public void setAge(int num){

age = num;

}

}

//创建一个类

public class DemoStudent{

public static void main(String[] args){

person stu = stu Student();

person.show();

stu.setName = ("wwd");

stu.setAge(20);

stu.setMale(true);

System.out.println("我叫:" + stu.setName());

System.out.println("年龄:" + stu.setAge());

System.out.println("是不是爷们:" + stu.isMale());

}

}

当方法的局部变量和类的成员变量重名时,根据“就近原则”,优先使用局部变量。

如果需要访问本类当中的成员变量,需要使用格式:this.成员变量名

“通过谁调用的方法,谁就是this”

public class Person{

String name;//我方的名字

//参数name是对方的名字

//成员变name是我方的名字

public void sayHello(String[] name){

System.out.println(name +"你好,我是" + this.name);

}

}

//创建一个类

public class DemoPerson{

public static void main(String[] args){

person preson = new Person();

//设置我方名字

person.name = "zr";

person.sayHello("mg");

}

}

构造方法是专门创建对象的方法,当我们通过关键字new来创建对象时,其实就是在调用构造方法。

格式:

public 类名称(参数类型 参数名称){

方法体

}

注意事项:

1.构造方法的名称必须和所在的类名称完全一样,就连大小写也要一样。

2.构造方法不需要写返回值,连void都不写。

3.构造方法不能return一个具体的返回值。

4.如果没有编写构造方法,那么编译器将会默认一个构造方法,没有参数、方法体什么事都不做。一旦编写了至少一个构造方法,那么编译器将不再赠送。

5.构造方法也是可以重载的。

重载:方法名称相同,参数列表不同。

public class Student{

public Student(){

System.out.println(“构造方法执行啦!”);

}

}

//无参数

public class Student{

public Student(){

}

}

//全参数

public class Student{

public Student(String name,int age){

this.name = name;

this.age = age;

}

}

//使用方法

public class DemoStudent{

public static void main(String[] args){

Student stu = new Student();

}

}

=======

public class Student{

private String name;

private String age;

public Student(String name,int age){

System.out.println(“构造方法执行啦!”);

}

public void setNamet(String name){

sthis.name = name;

}

public String getName(){

return name;

}

public void setAge(int age){

this.age = age;

}

public int setAge(){

return age;

}

}

//创建一个类

public class DemoStudent{

public static void main(String[] args){

Student stu2 = new Student("刘亦菲",20);

System.out.println("姓名:" + stu2.getName() + ",年龄:" + stu2.getName());

//改年龄

stu2.setAge(21);

System.out.println("姓名:" + stu2.getName() + ",年龄:" + stu2.getName());

}

}

Scanner类的功能:可以实现键盘输入数据,到程序当中。

应用类型的一般使用步骤:

1.导包

import 包路径.类名称;

如果需要使用的目标,和当前类位于同一个包下,则可以省略导包语句不写。

只有java.long包下的内容不需要导包,其他的包都不需要import语句。

2.创建

类名称 对象名 = new 类名称();

3.使用

对象名。成员方法名();

获得键盘输入的一个int数字:int num = sc.nextInt();

获得键盘输入的一个字符串:String str = sc.next();

//1.导包

import java.util.Scanner;

public class Demo01Scanner{

public static void main(String[] args){

//备注:System.in代表从键盘输入

//2.创建

Scanner sc = new Scanner(System.in);

//3.获得键盘输入的int数字

int num = sc.nextInt();

System.out.println(“输入的int数字是:” + num);

//4.获得键盘输入的字符串

String str = sc.next();

System.out.println(“输入的字符串是:” + str);

}

}

public class Demo02Scanner{

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();

int result = a + b;

System.out.println(“结果是:” + result);

}

}

题目:

键盘输入三个int数字,然后求出其中的最大值。

思路:

1.既然是键盘输入,肯定需要用到Scanner

2.Scanner三个步骤:导包、创建、使用nextInt()方法

3.既然是三个数字,那么调用三次nextInt()方法,得到三个int变量

4.无法同时判断三个数字谁最大,应该转化为两个步骤

5.打印结果

public class Demo02Scanner{

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();

System.out.println(“请输入第二个数字:”);

int c = sc.nextInt();

int result = a + b;

int temp = a > b ? a :b;

int max = temp > c ? temp :c;

System.out.println(“最大值是::” + max);

}

}

匿名对象

注意事项:匿名对象只能使用唯一的一次,下次再用只能在创建一个新对象。

使用建议:如果确定只有一个对象是,就可以使用

public class person{}

string name;

public void showName(){

System.out.println("我叫:" + name);

}

}

创建一个类

public class Demo01Anonymous{

public static void main(String[] args){

Person one = new Person();

one.name = "wwd";

one.showName();

System.out.println(“========”);

newPerson().name = "王冰冰";

new Person().showName();//我叫:null

}

}

//匿名对象的参数和返回值

public class Demo02Anonymous{

public static void main(String[] args){

//普通使用方式

Scanner sc = new Scanner(System.in);

int num = sc.nextInt();

//匿名对象的方式

new num = new Scanner(System.on).nextInt();

System.out.println("输入的是:" + num);

//使用一般写法输入参数

Scanner sc = new Scanner(System.in);

methodParom(sc);

//使用匿名对象来进行转参

methodParam (new Scanner(System.in));

Scanner sc = methodReturn();

sc.nextInt();

System.out.println("输入的是:" + num);

}

public static void methodParam(Scanner sc){

int nu = sc.nextInt();

System.out.println("输入的是:" + num);

}

public static void methodParam(Scanner sc){

return mew Scanner(System.in);

}

}