* 类中属性的使用
* 属性(成员变量) VS 局部变量
* 1、相同点
* ①定义变量的格式 : 数据类型 变量名 = 变量值
* ②先声明、后使用
* ③变量都有其对应的作用域
* 2、不同点
* ①在类中声明的位置不同
* 属性:直接定义在一对{}内
* 局部变量:声明在方法内、方法形参、代码块内、构造器形参、构造器内部的变量
* ②关于权限修饰符的不同
* 属性:可以在声明属性时,指明其权限,使用权限修饰符
* 常用的权限修饰符:private、public、缺省、protected……封装性
* 局部变量:不可以使用权限修饰符
* ③默认初始化值的不同
* 属性:类的属性,根据其类型,都有默认初始化值
* 局部变量:没有默认初始化值
* 意味着在调用局部变量之前,一定要显式赋值
* 特别的形参,在调用时,赋值即可
package com.xuexi.contact;
public class OOPTest1 {
public static void main(String[] args) {
User u1 = new User();
System.out.println(u1.name);//null
u1.talk("中文");//形参,在调用时,赋值
}
}
class User{
//属性(或成员变量)
String name;
int age;
boolean isMale;
public void talk(String language) {//language形参,也是局部变量
System.out.println("我们使用" + language + "进行交流");
}
public void eat() {
String food = "蛋糕";//局部变量,调用时不用赋值
System.out.println("我喜欢吃" + food);
}
}
}
类中方法的声明和使用
方法:描述类应该具有的功能
* 比如:Math类:sqrt()\random()\...
* Scanner类:netXxx()...
* Arrays类:sort()排序\binarySearch()查找\toString()|equals()
* 1、举例:
* public void eat() {} void意思是没有返回值
public void sleep(int hour) {}
public String getName( ) {} String有返回值
public String getNation(String nation) {}
2、方法的声明:
权限修饰符 返回值类型 方法名(形参列表){
方法体
}
注意:static final abstract 来修饰的方法,后面再讲
3、说明:
关于权限修饰符:
Java规定的4种权限修饰符:private、public、缺省、protected
返回值类型: 有返回值 VS 无返回值
如果方法有返回值,则必须在方法声明时,指定返回值的类型。
同时,方法中需要使用return关键字来返回指定类型的变量或常量;
如果方法没有返回值,则方法声明时,使用void来表示;
若要使用,只能return;表示结束此方法
方法名:遵循标识符命名规则、见名知意
形参列表:方法可以声明 0到多个 形参
格式:数据类型1 形参1,数据类型2 形参2,……
return关键字的使用:
1、使用范围:使用在方法体中
2、作用:①结束方法
②针对有返回值类型的方法,使用"return 数据"返回到所要的数据
注意点:return关键字后面不可以声明执行语句。
方法的使用中,可以调用当前类的属性或方法
特殊的:方法A中又调用了方法A:递归方法
在一个方法内不能定义别的方法
public class OOPTest1 {
public static void main(String[] args) {
}
//客户类
class Customer{
//属性
String name;
int age;
boolean isMale;
//方法
public void eat() {
System.out.println("客户吃饭");
}
public void sleep(int hour) {//public void 没有返回值类型
System.out.println("客户休息了" + hour + "小时");
}
public String getName( ) {//public String有返回值类型
if(age > 18) {
return name;
}else {
return "Tom";
}
}
public String getNation(String nation) {
String info = "我的国籍是" + nation;
return info;
}
}
}