1.内存分析
堆:存放对象|数组
栈:方法运行时期局部变量的内存空间
方法区:class文件存放的地方
2.重载
重载是在同一个类中的多个方法,方法名相同参数列表不同:参数类型不同、参数个数不同、不同类型参数顺序不同。
重载的作用:实现一个功能,但是这个功能存在不同实现方式或者参数的时候,可以利用方法的重载。
方法的重载就是多态的一种体现。
public class OverloadDemo02{
public static void main(String[] haha){
byte b = 1;
test(b);
}
//重载
public static void test(int i){
System.out.println("一个int类型参数的方法test");
}
//参数类型不同
public static void test(double i){
System.out.println("一个double类型参数的方法test");
}
//参数个数不同
public static void test(int i,double j){
System.out.println("一个int,一个double类型参数的方法test");
}//不同类型参数顺序不同
public static void test(double j,int i){
System.out.println("一个double,一个int类型参数的方法test");
}
public static void test2(int i,int j){
System.out.println("2个int类型参数的方法test2");
}
}
3.递归
递归:方法自己调用自己。
递归头:停止自己调用自己的条件。
递归体:自己调用自己的过程代码。
使用另外一种描述就是:
临界条件:停止自己调用自己的条件。
递归前进段:自己调用自己直到临界条件的过程。
递归后退段:从临界条件开始一直返回到调用的上一层。
public class Recursion03{
public static void main(String[] haha){
//求5!阶乘 5*4*3*2*1
//使用for循环实现
int result = 1;
for(int i=5;i>=1;i--){
result*=i;
}
System.out.println(result);
System.out.println(rec(5));
}
//需求: 实现求某一个数的阶乘 使用递归实现
//参数: int i
//返回值: int
public static int rec(int i){
if(i==1){
return 1;
}
return i*rec(i-1);
}
}
4.面对对象基础
对象:是具体的实物;
类:是对对象的抽象;
类可以看做是一个模板或者图纸,系统根据类的定义来造出对象。
4.1类的定义
定义类:就是定义类的成员,包括成员变量和成员方法;
成员变量:对应实物的属性,定义在类中和方法外;
成员方法:对应实物的行为。
//定义手机类
public class Phone{
//成员变量
//定义颜色
public String color;
//定义品牌
public String brand;
//尺寸
public double size;
//价格
public int price;
//成员方法
public void call(){
System.out.println("打电话...");
}
}
4.2创建对象
对象的格式:
创建对象:
类名 对象 = new 类名();
使用对象访问类中的成员:
对象名.成员变量;
对象名.成员方法();
public class PhoneTest{
public static void main(String[] args){
//1.创建对象
Phone p = new Phone();
//2.为属性赋值
p.color = "白色";
p.brand = "华为";
p.size = 6.0;
p.price = 6999;
//3.使用功能
p.call();
//查询手机对象的属性值
System.out.println(p.color);
System.out.println(p.brand);
System.out.println(p.price);
System.out.println(p.size);
}
}