1.多维数组:存储多个一维数组
1.1二维数组:定义方式 数组类型[][] 数组名 = 初始值
实例:方式1 int[][] arr1 = new int[2][3];
方式2 int[][]arr2 = new int[][] {
{1,2,3}
{2,3,4}
}
int[] arr2,arr3[]; 扯解后int[] arr2; int[][] arr3
二维数组的遍历
public static void print(int[][] arr) {
for (int i = 0; i < arr.length; i++) {
for (int j = 0; j < arr[i].length; j++) {
System.out.print(arr[i][j] + " ");
}
System.out.println();
}
}
2.递归函数:不断重复调用自身的函数
public static void main(String[] args) {
System.out.println(fun(5));
}
//需求:输入一个数 计算这个数的阶乘
//计算阶乘
public static int fun(int num) {
if (num == 1) {
//停止条件(递归函数的出口)
return 1;
}
return num * fun(--num);
}
}
3.面向对象
3.1 面向过程面向过程是一种以过程为核心的编程思想,即分析出解决问题所需要的步骤,然后使用方法将这些步骤一步一步的实现,使用的时候,在main方法中一个一个依次调用就可以了。
3.2面向对象
第一步是抽象数据类型。所谓抽象数据类型可以理解为:将不同类型的数据的集合组成个整体用来描述一类事物。
实例:public class Test {
public static void main(String[] args) {
Phone p = new Phone();
p.brand = "华为";
p.price = 1999;
System.out.println(p.brand + "," + p.price);
p.call();
p.playGame();
p.sendMessage();
}
}
class Phone{
String brand;
double price;
public Phone() {}
public void call() {
System.out.println("打电话");
}
public void sendMessage() {
System.out.println("发信息");
}
public void playGame() {
System.out.println("玩游戏 ");
}
}
3.3封装:将同一类的方法和属性封装成一个类型,隐藏实现功能的方法和属性,对外只提供访问功能的方法
private关键字:用private修饰的属性只能在本类中访问,对外提供setter和getter方法,以便在类的外表访问;
class Card{
//私有化属性
private int cardNo ;
private String name;
private double balance;
//提供setter和getter方法
public int getCardNo() {
return cardNo;
}
public void setCardNo(int cardNo) {
this.cardNo = cardNo;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public double getBalance(){
return balance;
}
public void setBalance(double balance){
this.balance = balance;
}
在类的外部访问实例:
public class Test(){
public static void main(String args){
Card c = new Card():
c.setName("zhangs");
c.setCardNo(100000000000000);
c.setBalance(100100);
System.out.println(c.getName);
System.out.println(c.getCardNo);
System.out.println(c.getBalance);
}
}
数组中常出现的异常:
空指针异常ArrayIndexOutOfBoundsException
int[] arr = null;
System.out.println(arr.length); //编译时出现空指针异常