一、程序方法的介绍
1.面向过程的程序设计思想(POP):关注的焦点是过程,也就是程序的步骤
2.面向对象的程序设计思想(OOP):关注的焦点是类,在计算机程序中,按照现实中的事物,将事物的属性特征、行为特征抽象出来,用类来表示。
二、 类和对象的关系
1.什么是类?
类就是具有相同特征的事物的抽象描述,是一组相关“属性”和“行为”的集合
2.什么是对象?
对象是一类事物的一个具体个体
3.类和对象的关系
类是对一类事物的描述,是抽象的
对象是一类事物的实例,是具体的
类是对象的模板,对象是类的实体
三、如何定义类和对象
1.如何定义类
【修饰符】 class 类名{
}
public class Student{ }
2.如何创建对象
(1)new 类名()// 也称为匿名对象
(2)类名 对象名 = new 类名();
Student stu=new Student();
四、成员变量
【修饰符】 class 类名{
【修饰符】 数据类型 成员变量名;
}
public class Person{ String name; char gender; int age; }
小tips:
位置要求:成员变量的位置要在类中,方法外。
类型要求:数据类型可以是java的任意类型(基本数据类型、引用数据类型)
修饰符:成员变量修饰符有(public、protected、private、static、final)
static可以将成员变量分为(静态变量+非静态变量),其中静态变量又称为类变量,非静态变量又称各位实例变量或者属性。
五、对象的实例变量
1.实例变量的特点:
(1)实例变量的值是属于某个对象的,必须通过对象才能访问实例变量,每个对象的实例变量的值是独立的。
(2)实例变量是存在默认值的
分类 数据类型 默认值 基本数据类型 整数:(byte,short,int,long) 0 浮点型(float,double) 0.0 字符(char) '\u0000' 布尔(boolean) false ------------------------------------------------------ 引用类型 数组、类、接口 null
2.实例变量的访问
public class TestPerson { public static void main(String[] args) { Person p1 = new Person(); p1.name = "张三"; p1.age = 23; p1.gender = '男'; Person p2 = new Person(); System.out.println("p1对象的实例变量:"); System.out.println("p1.name = " + p1.name); System.out.println("p1.age = " + p1.age); System.out.println("p1.gender = " + p1.gender); System.out.println("p2对象的实例变量:"); System.out.println("p2.name = " + p2.name); System.out.println("p2.age = " + p2.age); System.out.println("p2.gender = " + p2.gender); } }
(1)实例变量的值是属于某个对象的
必须通过对象才能访问实例变量
每个对象的实例变量的值是独立的
(2)实例变量有默认值
六、方法的基本介绍
1、方法的概念
方法其实就是一组代码的封,从而实现代码的重用。通常是一个独立功能的定义,方法是类中最基本的一个功能单元。
2.方法的特点
(1)必须先声明后使用
类,变量,方法等都要先声明后使用
(2)不调用不执行,调用一次执行一次。
3.如何声明方法
声明方法的位置必须在类中方法外,即不能在一个方法中直接定义另一个方法。
类{ 方法1(){ } 方法2(){ } }
4.方法的语法格式
【修饰符】 返回值类型 方法名(【形参列表 】)【throws 异常列表】{
方法体的功能代码
}public class MethodDefineDemo { //无参无返回值方法的演示 void sayHello(){ System.out.println("hello"); } //有参无返回值方法的演示 //@param length int 第一个参数,表示矩形的长 // @param width int 第二个参数,表示矩形的宽 //@param sign char 第三个参数,表示填充矩形图形的符号 void printRectangle(int length, int width, char sign){ for (int i = 1; i <= length ; i++) { for(int j=1; j <= width; j++){ System.out.print(sign); } System.out.println(); } } /** * 无参有返回值方法的演示 * @return */ int getIntBetweenOneToHundred(){ return (int)(Math.random()*100+1); } /** * 有参有返回值方法的演示 * @param a int 第一个参数,要比较大小的整数之一 * @param b int 第二个参数,要比较大小的整数之二 * @return int 比较大小的两个整数中较大者的值 */ int max(int a, int b){ return a > b ? a : b; } }
5.如何调用方法
(1)方法调用语法格式
对象.非静态方法(【实参列表】)
public class MethodInvokeDemo { public static void main(String[] args) { //创建对象 MethodDefineDemo md = new MethodDefineDemo(); System.out.println("-----------------------方法调用演示-------------------------"); //调用MethodDefineDemo类中无参无返回值的方法sayHello md.sayHello(); md.sayHello(); //调用一次,执行一次,不调用不执行 System.out.println("------------------------------------------------"); //调用MethodDefineDemo类中有参无返回值的方法printRectangle md.printRectangle(5,10,'@'); System.out.println("------------------------------------------------"); //调用MethodDefineDemo类中无参有返回值的方法getIntBetweenOneToHundred md.getIntBetweenOneToHundred();//语法没问题,就是结果丢失 int num = md.getIntBetweenOneToHundred(); System.out.println("num = " + num); System.out.println(md.getIntBetweenOneToHundred()); //上面的代码调用了getIntBetweenOneToHundred三次,这个方法执行了三次 System.out.println("------------------------------------------------"); //调用MethodDefineDemo类中有参有返回值的方法max md.max(3,6);//语法没问题,就是结果丢失 int bigger = md.max(5,6); System.out.println("bigger = " + bigger); System.out.println("8,3中较大者是:" + md.max(8,9)); } }
七、实例变量与局部变量的区别
1、声明位置和方式
(1)实例变量:在类中方法外
(2)局部变量:在方法体{}中或方法的形参列表、代码块中2、在内存中存储的位置不同
(1)实例变量:堆
(2)局部变量:栈3、生命周期
(1)实例变量:和对象的生命周期一样,随着对象的创建而存在,随着对象被GC回收而消亡,而且每一个对象的实例变量是独立的。
(2)局部变量:和方法调用的生命周期一样,每一次方法被调用而在存在,随着方法执行的结束而消亡, 而且每一次方法调用都是独立。4、作用域
(1)实例变量:通过对象就可以使用,本类中“this.,没有歧义还可以省略this.”,其他类中“对象.”
(2)局部变量:出了作用域就不能使用5、修饰符(后面来讲)
(1)实例变量:public,protected,private,final,volatile,transient等
(2)局部变量:final6、默认值
(1)实例变量:有默认值
(2)局部变量:没有,必须手动初始化。其中的形参比较特殊,靠实参给它初始化。