Java是纯粹的面向对象编程语言,完全支持面向对象的三大基本特征:封装、继承和多态。Java程序的组成单位就是类,不管多大的Java应用程序,都是由一个个类组成的。
将某个功能抽取出来,单独放到一对 { } 内,形成一个单独的功能。
格式:
修饰符 返回值 方法名(参数列表) {
方法体···
return ;
}
注意: 方法必须定义在类中方法外。 方法必须明确返回值类型(可以为空 void)、参数列表(可以为空 什么都不写)。 Java 里的方法不能独立存在,它必须属于一个类或一个对象
示例:
public class Hello {
public void helloWorld(int a) {
System.out.println(a);
}
}
直接调用:
方法名( );
赋值调用:
数据类型 变量名 = 方法名( );
输出语句调用:
System.out.println( 方法名( ) );
调用方法时可以给该方法传递一个或多个值,传给方法的值叫作实参,在方法参数列表,接收实参的变量叫作形参,形参的声明语法与变量的声明语法一样,形参只在方法内部有效。
同一个类中,允许存在方法名相同的方法只要参数列表不同即可,与修饰符和返回值类型无关。
注意: 参数列表不同:参数个数不同、数据类型不同、顺序不同 JVM会根据参数列表来调用对应的方法
示例:
public static void print() {}
public static int print(int a) {}
public static int print(int a, int b) {}
public static void print(double a) {}
什么事情都是自己做。即:买菜 ⇨ 择菜 ⇨ 洗菜 ⇨ 炒菜 ⇨ 吃菜
只关心结果不关心过程。即:找个保姆 ⇨ 保姆做菜 ⇨ 吃菜
面向过程:更强调解决问题的基本步骤,强调问题的解决方式,更强调的是方法,自顶向下,不断分解。 面向对象:更强调解决问题的主体,更强调谁来解决这个问题,更强调的是对象,自顶向上,不断拼装。
在Java语言中,除基本数据类型值之外,一切都是对象,而对象就是面向对象程序设计的中心。
对象(Object)是一个抽象概念,表示任意存在的事物。世间万物皆对象!世界中客观存在的事物都是对象。通常将对象划分为两个部分,即静态部分与动态部分。静态部分被称为“属性”,任何对象都具备自身属性,这些属性不仅是客观存在的,而且是不能被忽视的。动态部分指的是对象的行为,即对象执行的动作。
类是封装对象的属性和行为的载体,反过来说具有相同属性和行为的一类实体被称为类。在Java语言中,类包括对象的属性和方法。类中对象的属性是以成员变量的形式定义的,对象的行为是以方法的形式定义的。
具有相同或相似性质的一组对象的抽象就是类,类是对一类事物的描述,是抽象的、概念上的定义;对象是实际存在的该类事物的个体,因而也称为实例(instance)。对象的抽象化是类,类的具体化就是对象,也可以说类的实例是对象。类用来描述一系列对象,类概述每个对象应包括的数据,类概述每个对象的行为特征。故,可以把类理解成某种概念、定义,它规定了某类对象所共同具有的数据和行为特征。
public calss 类名 {
//成员变量
//成员方法
}
注意: 成员变量的定义在类中方法外。 局部变量的定义在方法中。 被 static 修饰的方法称为静态方法,可以直接使用 类名.方法名() 调用。
示例:
public class Add {
//成员变量
int a = 1;
int b = 2;
int sum;
//成员方法
public void add() {
sum = a + b;
}
}
// 这个类中没有 main() 方法,所以不能直接运行。
语法:
// 创建对象
类名 对象名 = new 类名();
// 对象访问类中的成员
对象名.成员变量;
对象名.成员方法();
注意: 成员变量有初始值
数据类型 | 初始值 |
---|---|
整数 | 0 |
浮点数 | 0.0 |
字符 | ‘\u0000’ (空白字符,不是空格) |
布尔 | false |
引用类型 | null |
成员变量:有默认值,位于堆中,随着对象的创建而创建,随着对象的消失而消失。 局部变量:没有默认值,必须先赋值再使用,位于栈中,随着方法的调用而存在,随着方法调用结束而消失。
示例:
public class Test {
public static void main(String[] args) {
//创建对象
Add add = new Add(); //add 中存储的是一个地址值
//这是局部变量
int c = 3;
//使用成员变量
add.a = 2;
add.b = c;
//使用成员方法
add.add();
}
}