public---修饰符,公共的 static----属于类变量
java是值传递
1.方法重载
2.命令行传参
命令窗口使用:javac 生成class文件时,java文件内有(引入路径)
package com.kuang.method;要回到路径前(路径会执行一遍)
有参数时加在后面,如:Java demo03 123
3.可变参数
Int ...i -----不定数量的参数,本质是数组,引用按数组方法
可变参数必须放在后面(int i,...a:5,1,2,3)类型要相同
public class Demo04{
public static void main(String[] args){
Demo04 demo04 = new Demo04();
demo04.test(x:1,2,3,4,45,5);
}
public void test(int x,int...i){ {
}}
4. 递归
public static int f(int n){
if(n==1){
return 1;}
else{
return n*f(n-1)
函数调用自己,注意避免死循环(递归占用大量空间内存,少用)
5.数组
声明可以和创建写到一起:int[] a=new a[10]
初始化默认为0,静态初始化设置几位就是几位
数组对象在堆数组对象在堆中
public static void main(String[] args) { //静态初始化:创建+赋值 int[] a = {1, 2, 3, 4}; System.out.println(a[0]); //动态初始化:包含默认初始化 int[] b=new int[10]; b[0]=10; b[1]=10; }
6.Arrays类
需导入包 import java.util.Arrays(工具,用起来方便)
Arrays.toString(a)---打印整个数组
Arrays.sort(a)---数组进行排序,升序
Arrays.fill(a,2,4,0)---a数组从2到4被0填充(中间自动填补)
int a={1,2,3,4,5,6}; System.out.println(a);//输出I@4554617c(哈希值) System.out.println(Arrays.toString(a));//打印整个数组
7.稀疏数组
public class demo4 { public static void main(String[] args) {
//创建一个二维数组11*11 0 1 2
int[][] array1=new int[11][11];
array1[1][2]=1;
array1[2][3]=2;
for(int[] ints : array1){
for(int anInt :ints){
System.out.print(anInt+"\t"); }
System.out.println("\n"); } //转换成稀疏数组保存
int sum =0;//获取有效值数量
for (int i = 0; i < 11; i++) {
for (int j = 0; j < 11; j++) {
if (array1[i][j]!=0){ sum++; } } }
System.out.println("有效值的个数:"+sum); //创建一个稀疏数组
int [][] array2=new int[sum+1][3];
array2[0][0]=11;
array2[0][1]=11;
array2[0][2]=sum; //遍历二维数组,将非零存进稀疏数组
int count=0;
for (int i = 0; i < array1.length; i++) {
for (int j = 0; j < array1[i].length; j++) {
if(array1[i][j]!=0){
count++;
array2[count][0]=i;
array2[count][1]=j;
array2[count][2]=array1[i][j]; } } } //输出稀疏数组
System.out.println("稀疏数组");
for (int i = 0; i < array2.length; i++) {
System.out.println(array2[i][0]+"\t" +array2[i][1]+"\t" +array2[i][2]+"\t"); }
//还原稀疏数组
int[][] array3=new int[array2[0][0]][array2[0][1]]; //给其中的元素还原他的值
for (int i = 1; i < array2.length; i++) {
array3[array2[i][0]][array2[i][i]]=array2[i][2]; } //输出
for(int[] ints : array1){
for(int anInt :ints){
System.out.print(anInt+"\t"); }
System.out.println("\n"); } } }
8.面向对象
三大特征
封装,继承(子继承父),多态(同种事物不同形态)