一, 类中属性的使用
属性(成员变量)vs局部变量
1.相同点
1.1定义变量的格式相同:数据类型 变量名=变量值(完整的,有的可能没有赋值)
1.2都是先声明,后使用
1.3变量都有其对应的作用域。(超过作用域范围都失效)
2.不同点
2.1在类中声明的位置不同(主要区别)
属性:直接定义在类的一对{}内
class User{
//属性(或成员变量)(的位置)
/*String name;
int age;
boolean isMale;
*/
局部变量:声明在方法内,方法形参,代码块内,构造器形参,构造器内部的变量
//经常见到的局部变量的两个位置
//位置一
public void talk(String language) {//该行代码中,talk为方法名,()中的“String language”就是形参,
//所以language就是局部变量——2.1
//调用时赋值即可——2.3
System.out.println("我们使用"+language+"进行交流");
}
//位置二
public void eat(){
String food="烙饼";//food是定义在方法内的变量,也是局部变量
//这里的food只能在此处就赋值
System.out.println("北方人喜欢吃:"+food);
}
2.2关于权限修饰符的不同
属性:可以在声明属性时,指明其权限,使用权限修饰符。
常用的权限修饰符:private,public,缺省,protected(讲封装性的时候具体讲 解)目前,声明属性时,都使用缺省。
//属性(或成员变量)(的位置)
/*String name;
int age;
boolean isMale;//这三行前面什么也没有就是缺省的权限
*/
private String name;
public int age;
protected boolean isMale;//这三行前面说明了权限
局部变量:不可以使用权限修饰符。
2.3默认初始化值的情况:
属性:类的属性,根据其类型,都有默认初始化值。
整型(byte,short,int,long):0
浮点型(float,double):0.0
字符型(char):0(或'\u0000')
布尔型(boolean):false
引用数据类型:(类,接口,数组):null
局部变量:没有默认初始化值。所以在调用局部变量之前一定要显式赋值。 特别地, 形参在调用时,我们赋值即可。(实例上面代码有)
2.4在内存中加载的位置不同
属性:加载到堆空间中(非static)
局部变量:加载到栈空间
二,类中方法的声明和使用
方法:描述类应该具有的功能
比如:Math类:sqrt()\random()(本身就没有形参)\...
Scanner类:nextXxx()..(用于从键盘获取数据)
Arrays类:sort()(对数组进行排序)\binarySearch()(查找)\toString()(输出一个数组) \equals()\...
1.理解方法举例:
public void eat() {}
public void sleep(int hour) {}
public String getName() {}
public String getNation(String nation) {}
这四行声明中二四行有形参(int hour和String nation),一三行没有,意味着方法实际上可以不用包含形参,可有可没有形参。
* 前两行中有void,void表示没有返回值;后两行有String表示有返回值,返回两个字符串。
* 2.方法的声明:权限修饰符 返回值类型 方法名(形参列表(可有可无,有的话还可以不止有一个)){
* 方法体
* }(这几个部分一定有,注意:static,final,abstract来修饰的方法不一定有,之后详解。)
* 3.说明:
* 3.1关于权限修饰符:目前默认方法的权限修饰符先都用public
* Java中规定的4中权限修饰符:private,public,缺省,protected(体现结构被调用时的权限大小)
* 3.2返回值类型:有返回值 vs 没有返回值
* 3.2.1如果方法有返回值,则必须在方法声明时,指定返回值的类型。同时,方法中,需要使用return关键字来返回指定类 型的变量或常量:“return 数据”。如果方法没有返回值,则方法声明时,使用void来表示。通常,没有返回值的方法中,就不需要使用return。但是,如果使用return的话,只能:“return;”,表示结束此方法,且后不可以声明表达式。
* 3.2.2定义方法该不该有返回值:
* ①题目要求
* ②凭经验,具体问题具体分析
* 3.3 方法名:属于标识符,遵循标识符的规则和规范,“见名知意”
* 3.4形参列表:方法可以声明0个,1个,或多个形参。
* 3.4.1格式:数据类型1 形参1,数据类型2 形参2,...
* 3.4.2定义方法时,该不该定义形参?
* ①题目要求
* ②凭经验,具体问题具体分析
* 3.5方法体:方法功能的体现。
* 4.return关键字的使用:
* 1.适用范围:使用在方法体中
* 2.作用:①结束方法
* ②针对有返回值类型的方法,使用“return 数据”方法返回所要的数据。
* 3.注意:return关键字后面不能声明执行语句。
* 5.方法使用中,可以调用当前类的属性或方法
* 特殊的,方法A中又调用了方法A:递归方法。
方法中,不可以再定义一个新方法。
* public class CustomerTest {
public static void main(String[] args) {
Customer cust1=new Customer();
cust1.eat();
cust1.sleep(8);
}
}
* public void eat() {
System.out.println("客户吃饭");
}
public void sleep(int hour) {
System.out.println("休息了"+hour+"个小时");
eat();
分别输出 客户吃饭
休息了8个小时
客户吃饭
*/