天天看点

Lesson_for_java_day06--java中类的定义、方法的定义、键盘的输入方式

/*
------------------------表达式自增运算练习------------------------------------------


练习一:计算三个表达式中b的值:
表达式1:int a = 2; int b = a + 3 * a++;
表达式2:int a = 2; int c = a + 3 * ++a;
表达式3:int a = 2; int d = (a++) + 3 * a;
表达式4:int a = 2; int e = (++a) + 3 * a;
解答:表示式1:b = a + 3 * a; a++;  --a的值都为2,运算完后a再自加1,所以运算结果为:8
 表达式2:b = a + 3 * ++a;  --运算从左到右,前一个a值为2,后一个a自加后再参加运算,
所以运算结果为:11
 表达式3:b = (a++) + 3 * a;  --括号的运算优先级最高,而a先运算后自加,所以括号整体值为2,
a自加后为3,再参加后面的乘法运算,所以运算结果为:11
 表达式4:b = (++a) + 3 * a;  --a先自加后再参加运算,所以括号的整体值为3,a自加后为3,
再参加后面乘法运算,所以运算结果为:12


---------------------------java中类的定义----------------------------------------------------

类定义的方法:
class 类名 {
属性;
方法;
}
属性:属性也叫成员变量,主要用于描述类的状态。
方法:方法也叫成员方法,主要用于描述类的行为。

生成对象的方法:
格式:;类名 对象名 = new 类名(参数);
类名(参数):其实是调用构造函数。
对象存在于堆内存中,而引用(对象名)存在于栈内存中。

对象的使用方法:
使用对象就是调用对象的变量和函数:
对象.变量;     对象.函数();

匿名对象的使用:
可以不定义对象的引用名称,而直接调用这个对象的方法,这样的对象叫做匿名对象。
eg:new Dog().jump();
使用方式:
1、当对对象的方法只调用一次(调用属性无意义)时,可以使用匿名对象。
2、可以将匿名对象作为实际参数传递。


--------------------------Java中方法的定义-----------------------------------------


Java的方法是一段用来完成特定功能的代码片段。
声明格式:
[修饰符1  修饰符2  …] 返回值类型 方法名(形式参数列表){
Java语句块;
return 语句;
}


return语句:return语句终止方法的运行并指定要返回的数据。 
返回值:方法在执行完毕后返还给调用它的环境的数据。
返回值类型:事先约定的返回值的数据类型,如无返回值,必须给出返回值类型void。 
return语句相当于返回一个相应的值给调用对象。也就是说给调用对象赋值。
所以如果返回值类型与调用对象的类型不一样时,需要进行强制类型转换。
return语句后面不可以再有语句。

变量的作用域:
局部变量:方法体内部声明的变量称为局部变量。只能在方法体内使用。
成员变量:在方法体外,类内部声明的变量。可以在声明之后的语句内使用。
局部变量存在于栈内存中,而成员变量存在于堆内存中。


参数的形式:
形式参数:在方法被调用时用于接收外界输入的数据。
实参:调用方法时实际传给方法的数据。

方法名:首写字母小写,驼峰式命名,望文生义


方法的调用方式:对象名.方法名(实参列表)
实参的数目、数据类型和次序必须和所调用方法声明的形参列表匹配,


方法调用中参数传递遵循值传递的原则:基本类型传递的是该数据值本身。
引用类型传递的是对对象的引用,而不是对象本身 。

静态方法只能访问静态方法和静态变量。


------------------------java中键盘输入方式------------------------------------


先生成Scanner对象。再调用对象内的方法,完成不同数据类型的输入。
Scanner input = new Scanner(System.in);
double a = input.nextDouble();//从键盘读入double类型数据
int b = input.nextInt();//从键盘读入int类型数据
input.nextLine();//吸收回车
String s = input.nextLine();//从键盘读入一串字符串


*/
           

java中,成员变量和局部变量的示例:

public class Test2 {
	static int age = 20;//全局变量(类内部,方法外部)
	static String name = "张三";
	public static void main(String[] args) {
		int age = 21;//局部变量
		System.out.println("aaaa");
		System.out.println(age);//局部变量(方法内部)
		//getAge(); 非静态方法,主函数不可以调用
		getName();
	}

	public void getAge() {
		System.out.println(age);//全局变量
	}

	public static void getName() {
		System.out.println(name);//全局变量
	}
}
           

java中,键盘输入数据的方式:

import java.util.Scanner;//引入Scanner类

public class TestScanner {

	public static void main(String[] args) {
		Scanner input = new Scanner(System.in);
		double a = input.nextDouble();//从键盘读入double类型数据
		System.out.println("a=" + a);
		int b = input.nextInt();//从键盘读入int类型数据
		System.out.println("b=" + b);
		input.nextLine();//吸收回车
		String s = input.nextLine();从键盘读入一串字符串
		System.out.println("s=" + s);
		System.out.println("请从键盘上输入5个int类型数据:");
		int i1 = input.nextInt();
		int i2 = input.nextInt();
		int i3 = input.nextInt();
		int i4 = input.nextInt();
		int i5 = input.nextInt();
		System.out.println("i1=" + i1+ ",i2=" + i2+ ",i3=" +i3 +",i4="+i4 +",i5=" + i5);
	}
}