1. 成员变量
位置要求:必须在类中,方法外
类型要求:可以是Java的任意类型,包括基本数据类型、引用数据类型(类、接口、数组等)
修饰符:成员变量的修饰符有很多,例如:public、protected、private、static、volatile、transient、final等,后面会一一学习。
public class Shop {
//成员变量 修饰符+数据类型+变量名
public String pic;
public double price;
public String title;
public int count;
}
其中static可以将成员变量分为两大类,静态变量和非静态变量。其中静态变量又称为类变量,非静态变量又称为实例变量或者属性。接下来先学习实例变量。
2.实例变量的特点
(1)实例变量的值是属于某个对象的
-
必须通过对象才能访问实例变量
-
每个对象的实例变量的值是独立的
(2)实例变量有默认值
public static void main(String[] args) {
//变量的访问对象名+属性名
Shop shop=new Shop();
shop.pic="daksljdakljdklasjdkljlk1j";
shop.price=138.1;
shop.title="Just Do It";
shop.changcount(2);
System.out.println(shop.count);
}
4. 方法(Method)
1 方法的概念
方法也叫函数,是一组代码语句的封装,从而实现代码重用,从而减少冗余代码,通常它是一个独立功能的定义,方法是一个类中最基本的功能单元。
Math.random()的random()方法 Math.sqrt(x)的sqrt(x)方法 System.out.println(x)的println(x)方法 Scanner input = new Scanner(System.in); input.nextInt()的nextInt()方法
5.4.2 方法的特点
(1)必须先声明后使用
类,变量,方法等都要先声明后使用
(2)不调用不执行,调用一次执行一次。
5.4.3 如何声明方法
1、声明方法的位置
声明方法的位置==必须在类中方法外==,即不能在一个方法中直接定义另一个方法。
声明位置示例:
2、声明方法的语法格式
【修饰符】 返回值类型 方法名(【形参列表 】)【throws 异常列表】{ 方法体的功能代码 }
(1)一个完整的方法 = 方法头 + 方法体。
-
方法头就是 【修饰符】 返回值类型 方法名(【形参列表 】)【throws 异常列表】,也称为方法签名,通常调用方法时只需要关注方法头就可以,从方法头可以看出这个方法的功能和调用格式。
-
方法体就是方法被调用后要指定的代码,也是完成方法功能的具体实现代码,对于调用者来说,不了解方法体如何实现的,并影响方法的使用。
(2)方法头可能包含5个部分,但是有些部分是可能缺省的
-
修饰符:可选的。方法的修饰符也有很多,例如:public、protected、private、static、abstract、native、final、synchronized等,后面会一一学习。其中根据是否有static,可以将方法分为静态方法和非静态方法。其中静态方法又称为类方法,非静态方法又称为实例方法。==接下来咱们先学习实例方法==。
返回值类型: 表示方法运行的结果的数据类型,方法执行后将结果返回到调用者
-
基本数据类型
-
引用数据类型
-
无返回值类型:void
方法名:给方法起一个名字,见名知意,能准确代表该方法功能的名字
参数列表:表示完成方法体功能时需要外部提供的数据列表
-
无论是否有参数,()不能省略
-
如果有参数,每一个参数都要指定数据类型和参数名,多个参数之间使用逗号分隔,例如:
-
一个参数: (数据类型 参数名)
-
二个参数: (数据类型1 参数1, 数据类型2 参数2)
-
-
参数的类型可以是基本数据类型、引用数据类型
-
throws 异常列表:可选,在异常章节再讲
(3)方法体:方法体必须有{}括起来,在{}中编写完成方法功能的代码
-
return语句后面就不能再写其他代码了,否则会报错:Unreachable code
public class Shop {
//属性
public String pic;
public double price;
public String title;
public int count;
//方法
//修饰符+返回数据类型(void)+方法名称(形参列表){方法体}
//void无返回值类型的方法不需要返回数据
public void changcount(int number) {
if (number > 12) {
System.out.println("商品数量过多,库存不足");
} else {
//this尽量不要省略,this指向当前对象属性值,谁调用指向谁。
this.count = number;
}
}
//有参数,无返回
public void max(int n, int m) {
System.out.println(n > m ? n : m);
}
//有参,有返回
public int min(int n, int m) {
return n > m ? m : n;
}
//return返回数据