Java入门-第八节-面向对象和面向过程以及方法
一.面向对象和面向过程
1.面向对象
•面向对象是一种编程思想,这种编程思想凸显对象在编程过程中的重要作用。什么是面向对象呢?简单的说就是让对象成为类与类之间的“通信”的桥梁,通过对象使类之间形成有机的整体。
•面向对象编程语言以对象为中心,以消息为驱动,即程序=对象+消息。
2.面向过程 •面向过程编程语言则以过程为中心,以算法为驱动,即程序=算法+
3.区别
1、面向对象是从宏观方面思考问题,而面向过程可以说是从细节处思考问题
2、在面向对象中,也存在面向过程。
二.方法
1.构造一个方法
•方法用于定义类的某种行为(或功能),其语法结构如下:
访问控制符[修饰符]返回值类型 方法名([参数]) {
//方法体
}
例如
public void sayHello(){
System.out.println("Hello");
}
protected final void show(int x){
System.out.println(x);
}
private static int add(int x, int y){
return x+y;
}
•方法中的访问控制符用于限制方法在其他类中的使用范围。
public class New {
public void draw(int x) {
System.out.println(x);
}
}
•访问控制符分为四种:public、protected、友好的和private
•static修饰符用于限制方法的调用方式:
public class New {
public static void draw(int x) {
System.out.println(x+1);
}
}
public class Test {
public static void main(String [] args) {
New.draw(11);
New ne = new New();
}
}
非static修饰的方法只能使用类创建的对象调用
public class New {
public void draw(int x) {
System.out.println(x+1);
(x+1);
}
}
public class Test {
public static void main(String [] args) {
New ne = new New();
ne.draw(11);//输出12
}
}
•如果方法没有返回值,需要用void表示。
void sayHello(){
System.out.println("Hello");
}
•方法返回基本数据类型的数据,则返回值类型必须是返回数据所属的数据类型或者精度更高的数据类型(针对于数值类型的数据)。
boolean compare(int x, int y){
return x>y;
}
int add(int x, int y){
return x+y;
}
double subtraction(int x, int y){
return x-y;
}
•方法返回引用数据类型的数据,则返回值类型必须是返回数据所属的数据类型或者其父类
•方法如果有返回值,则必须借助return关键字将数据返回;
public class New {
public Object draw(String x) {
return x;
}
}
String 的父类为 Object。
方法名
•遵循标识符命名规则;首字母必须小写,如果由多个单词组成,从第二个单词开始首字母必须大写;方法名一般由一个动词或者动名词构成。
2.参数
•方法可以有多个参数,各个参数之间用逗号(,)间隔。
•方法的参数在整个方法内有效。
方法参数前面的数据类型用于限制调用方法时所传具体数据的数据类型
int multiplication(int x, int y){
int result = x*y;
return result;
}
动态参数:
public class Test {
public static void print(int... numbers) {
for (int number : numbers) {
System.out.println(number);
}
}
public static void main(String[] args) {
print(1, 2, 3, 4, 5);
}
}
•注意:
1、动态参数实质为数组;
2、动态参数必须位于参数列表的最后;
3、一个方法只能有一个动态参数;
3.方法重载
•同一个类中有多个方法名相同但参数列表不同的方法,这种现象称为方法重载(overload)。其中参数列表不同包括以下情形:
1、参数的个数不同
2、参数的对应类型不同
public class New {
int add(int a) {
return a;
}
int add(int a,int b) {
return a+b;
}
int add(int a,int b,int c) {
return a+b+c;
}
}
•注意:
1、参数列表不同并不包含参数名不同,也就是说如果方法名相同,方法中参数个数和类型相同,只是参数名不同,这样也不能称之为方法重载。
2、方法中其它构成部分不参与比较:访问控制符、修饰符、返回值类型。