JAVA方法详解

来源:互联网 发布:淘宝香水店铺推荐 知乎 编辑:程序博客网 时间:2024/06/05 02:23

JAVA基础—方法概述

 

给我一个西瓜,我给你一杯西瓜汁,从西瓜变成西瓜汁的过程就是一个方法

 

1、什么是方法?

方法是一个模块化的功能,同时也是对象的基本行为。一个方法代表完成一件事情或做一个任务。

 

2、方法有什么用?

A:完成一个独立的功能,使代码模块化

B:能多次调用,提高代码复用性

C:方法是一个完整功能的最小模块

D:任何方法都属于某个类,有类才有方法

 

3、方法的结构

Public static void main(String[] arg){

}

这是一个主方法,当然每个程序都有唯一的主方法,这是一个程序的入口,这个形式是固定的,除了arg可以随便命名外其他都是不可改变的。一个完整的方法结构就如主方法类似:

Apublic表示作用域

1public公开的:表示对于整个程序/外部程序可见(所有人)

2private私有的:表示只对当前类自己可见(自己)

3protect受保护的:表示对同包下的类或子类可见(朋友或孩子)

4default默认的:表示同包下的类可见(朋友)

注:使用反射的话,任何类的任何属性或方法在你眼里都是裸奔

Bstatic表示静态的[可选]

这不是每个方法必须选择的,如果使用static关键字修饰方法,表示该方法是属于该类的。也称为类方法,它是在编译期给定的。要使用它直接用类名就能调用,无需实例化该类

Cvoid表示返回值类型为空

返回值类型可以是基本数据类型,可以是引用数据类型,还可以是void

Dmain表示方法名

方法名一般是有意义的单词组成,书写时第一个单词小写,第二个单词名首字母大写。getName()setName()

EString[]表示形参类型

参数类型可以是基本数据类型,可以是引用数据类型

Farg表示形参名

形参名最好是有意义的单词

注:参数个数是可以有多个,也可以没有。多个参数之间用逗号隔开

G{}里的内容表示方法体,即该方法要做的事情

 

4、方法从哪儿来?

A:自己写

B:调用被人写好的

 

5、什么是形参?什么是实参?

例:

public void display(int age,String name){}//这是一个方法

Test test = new Test();

Int age1=10;

String name1=”小华”;

Test.display(age1,name1);

简单的讲形参就是定义方法时给的参数,实参是调用该方法的对象给的参数。从上可以看出age,name为形参,age1,name1为实参。

 

6、方法重载(overload

方法重载的定义为:在一个类中,两个方法名相同,参数个数,参数类型,不同参数位置不同,就称为一个方法对另一个方法重载。虚拟机会自动根据你传入的参数列表进行匹配相应的方法,然后执行。注:与返回值没关系

方法重载的好处:在于增强了代码的识别性,实际上在代码量上并没有减少。

(1)参数个数不同:public void diaplay(){},public void display(int a){}

(2)参数类型不同:public void diaplay(double a){},public void display(int a){}

(3)不同参数的位置不同:public void diaplay(double a,int b){} ,public void display(int a,double b){}

 

7、方法重写(override

方法重写的定义为:在两个有继承关系的类中,两个方法必须同名,参数列表必须相同,返回值相同,作用域不能缩小(即public不能变为private的类似)。

A:定义一个类A

public class A {

public void sayHello(){

System.out.println("A....");

}

}

B:定义一个类B继承A,并重写A中的方法

public class B extends A {

@Override

public void sayHello(){

System.out.println("B....");

}

}

C:定义一个测试类C

public class C {

public static void main(String[] args) {

A a = new B();

a.sayHello();

}

}

D:测试结果为:B....

 

8、构造方法

构造方法的定义:方法名与类名相同,没有返回值,权限是public

构造方法的作用:初始化类,new一个类的时候就调用构造方法

构造方法的分类:每个类都有一个默认的无参构造,如果你写了有参构造方法,将会覆盖无参构造,构造方法可以重载。

A:无参构造

class A{

public A(){

}

}

B:有参构造

class B{

int age;

public B(int age){

this.age = age;

}

}

 

9、Eclipse自动生成构造方法快捷方式

A:定义好一个类以及类的属性

public class A {

private String name;

private int age;

private String gender;

 

}

B:在该类的空白行中鼠标右(alt+shift+s)—>选择Source>Generate Constructor using Fields...>OK(自动生成有参构造)

public class A {

private String name;

private int age;

private String gender;

//有参构造

public A(String name, int age, String gender) {

super();

this.name = name;

this.age = age;

this.gender = gender;

}

}

C:在该类的空白行中鼠标右(alt+shift+s)—>选择Source>Generate Constructors from Superclass...>OK(自动生成无参构造)

public class A {

private String name;

private int age;

private String gender;

//无参构造

public A(String name, int age, String gender) {

super();

this.name = name;

this.age = age;

this.gender = gender;

}

//有参构造

public A() {

super();

}

}

 

10、构造方法实例

public class A {

private String name;

private int age;

private String gender;

//有参构造

public A(String name, int age, String gender) {

super();

this.name = name;

this.age = age;

this.gender = gender;

}

//无参构造

public A() {

super();

}

//输出初始化后的值方法

public void display(){

System.out.println(name+age+gender);

}

public static void main(String[] args) {

//初始化值

//A a = new A();调用无参构造

A a = new A("小王",12,"");//调用有参构造

a.display();

}

}

调用有参构造输出的结果为:小王 12

调用无参构造输出的结果为:null 0 null

 

 

0 0
原创粉丝点击