JAVA方法详解
来源:互联网 发布:淘宝香水店铺推荐 知乎 编辑:程序博客网 时间:2024/06/05 02:23
JAVA基础—方法概述
给我一个西瓜,我给你一杯西瓜汁,从西瓜变成西瓜汁的过程就是一个方法
1、什么是方法?
方法是一个模块化的功能,同时也是对象的基本行为。一个方法代表完成一件事情或做一个任务。
2、方法有什么用?
A:完成一个独立的功能,使代码模块化
B:能多次调用,提高代码复用性
C:方法是一个完整功能的最小模块
D:任何方法都属于某个类,有类才有方法
3、方法的结构
Public static void main(String[] arg){
}
这是一个主方法,当然每个程序都有唯一的主方法,这是一个程序的入口,这个形式是固定的,除了arg可以随便命名外其他都是不可改变的。一个完整的方法结构就如主方法类似:
A:public表示作用域
(1)public公开的:表示对于整个程序/外部程序可见(所有人)
(2)private私有的:表示只对当前类自己可见(自己)
(3)protect受保护的:表示对同包下的类或子类可见(朋友或孩子)
(4)default默认的:表示同包下的类可见(朋友)
注:使用反射的话,任何类的任何属性或方法在你眼里都是裸奔
B:static表示静态的[可选]
这不是每个方法必须选择的,如果使用static关键字修饰方法,表示该方法是属于该类的。也称为类方法,它是在编译期给定的。要使用它直接用类名就能调用,无需实例化该类
C:void表示返回值类型为空
返回值类型可以是基本数据类型,可以是引用数据类型,还可以是void
D:main表示方法名
方法名一般是有意义的单词组成,书写时第一个单词小写,第二个单词名首字母大写。getName(),setName()
E:String[]表示形参类型
参数类型可以是基本数据类型,可以是引用数据类型
F:arg表示形参名
形参名最好是有意义的单词
注:参数个数是可以有多个,也可以没有。多个参数之间用逗号隔开
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
- JAVA Calendar方法详解
- JAVA Calendar方法详解
- java 多线程 方法详解
- Java方法详解
- Java main 方法详解
- 【java】getAbsolutePath()方法详解
- JAVA--Main方法详解
- binarySearch()方法详解 java
- 【java】getAbsolutePath()方法详解
- JAVA方法详解
- java compareTo()方法详解
- Java clone()方法详解
- binarySearch()方法详解 java
- java的方法详解
- java 构造方法详解
- Java clone方法详解
- java中方法详解
- java中的方法详解
- 17. Letter Combinations of a Phone Number
- jQuery最简单的留言功能^-^
- c#学习 11/22 里式转换与常用类的使用
- java线程内存模型
- Android ORMLite数据库框架使用入门
- JAVA方法详解
- 前端提升之Gulp构建
- HTML语义化
- js实现窗口全屏示例
- 伪分布式 hadoop 2.6.4
- Hyperledger Fabric 开发环境搭建
- Using pip to install Python packages on Anaconda
- Angular2 Http拦截器 Interceptor 实现
- Android基础--Android四大组件之Activity(一)