一、Java方法创建和重载
1、方法的定义
方法就是一段可重复调用的代码段。
定义格式:
访问修饰符 返回值类型 方法名(){ 方法主体 }
示例
代码
public class Demo01 {
public static void main(String[] args) {
}
public void tell() {
System.out.println("hello");
}
/**
* 方法的返回值类型,void类型是不需要返回值的,其他的类型全部是需要有返回值的
* @return
*/
public int say() {
return 1;
}
public String print() {
return "hello";
}
public void tell1(int i,String n) {
System.out.println(i+n);
}
public int tell2(int i) {
return i;
}
}
2、方法的重载
方法的重载:方法名称相同,但是参数的类型和个数不同,通过传递参数的个数和类型不同来完成不同的功能。
示例
代码
public class Demo02 {
public static void main(String[] args) {
tell(10,20);
tell(10, 20, 30);
}
public static void tell(int i,int j) {
System.out.println(i+j);
}
public static void tell(int i,int j,int n) {
System.out.println(i+j+n);
}
/**
* 这个两个不叫重载
* public int tell() {
*
* }
* public String tell() {
*
* }
*
*/
}
结果:
30
60
二、类的创建及类与对象的关系
1、类的定义、声明、使用
- 格式:
class 类名称{ 属性 方法 }
- 声明一个类需要通过一个关键字
class
。
示例
代码
class Person{
String name;
int age;
public void tell() {
System.out.println("姓名:"+name+" "+"年龄:"+age);
}
}
public class Demo03 {
public static void main(String[] args) {
}
}
2、类与对象的关系
类是对某一类事物的描述,是抽象的、概念上德意义,对象是实际存在的该类事物的每一个个体,也被称为对象或实例。
示例
代码
class Person{
String name;
int age;
public void tell() {
System.out.println("姓名:"+name+" "+"年龄:"+age);
}
}
public class Demo03 {
public static void main(String[] args) {
/**
* 创建对象
*/
// Person per = null;//声明
// per = new Person();//实例化操作
Person per = new Person(); //声明并实例化
}
}
3、内存的划分
代码
class Person{
String name = null;
int age = 0;
public void tell() {
System.out.println("姓名:"+name+" "+"年龄:"+age);
}
}
public class Demo03 {
public static void main(String[] args) {
/**
* 创建对象
* 对象.属性 : 对属性进行赋值
* 对象.方法 : 对方法进行调用
*/
// Person per = null;//声明
// per = new Person();//实例化操作
Person per = new Person(); //声明并实例化
per.name = "张三";
per.age = 30;
per.tell();
}
}
结果:
姓名:张三 年龄:30
三、Java面向对象思想编程
- 程序的发展历程:面向过程、面向对象。
- 解释面向过程和面向对象:(以制作盒子为例)
面向过程:不去想做什么样子的盒子,随机取工具制作;
面向对象:先想好做一个什么样的盒子,再去找对应的工具去做。
面向对象的三大特征:
- 封装性:对外部不可见
- 继承:扩展类的功能
- 多态性:方法的重载、对象的多态性
四、Java方法递归调用
递归调用是一种特殊的调用形式,就是方法自己调自己。
代码
public class Demo04 {
public static void main(String[] args) {
System.out.println(addNum(100));;
}
/**
* 从1加到100:100+99+98+......+1
* @param num
* @return
*/
public static int addNum(int num) {
if (num == 1) { //程序出口
return 1;
}else {
return num+addNum(num-1);
}
}
}
结果:
5050