Java学习_20220607
1. 方法的定义
修饰符+返回值类型(void 无返回值,其它必有返回值)+方法名(参数类型 参数名)
(形式参数:在方法被调用时用于接收外界输入的数据,实参:调用方法时实际传给方法的数据)
+方法体+return 返回值
public static int fun(int a,int b){
if(a<b)
return a;
else
return b;
}
//调用
int x = fun(43,32);
2. 方法重载
在一个类中,有相同的函数名称,但形参不同的函数。(方法名必须相同,参数列表必须不同,个数、类型或者排列顺序不同等)
3.可变参数
在方法声明中,在指定参数类型后面加一个省略号(…),一个方法中只能有一个可变参数,且必须是方法的最后一个参数。
public static void printMax(int x,double... numbers){
//方法体
}
4. 数组
定义:(数组长度确定,类型相同有序集合)
//静态初始化:创建+赋值
int[] a = {1,2,3,4,5};
//动态初始化:包含默认初始化
int[] b = new int[5];
b[0] = 10; //b[1]--b[4]没有赋值,默认为0
for(int i=0;i<a.length;i++){
System.out.println(a[i]);
}
for(int ar : a){ //for-each方法
System.out.println(ar);
}
System.out.println(Arrays.toString(a));//打印数组
System.out.println(Arrays.sort(a));//升序排序
//二维数组
int[][] y = new int[2][3];
int[][] z ={{1,2,3},{2,3,4},{3,4,5}};
Java内存:
(1)堆:存放new的对象和数组,可以被所有的线程共享,不会存放别的对象引用
(2)栈:存放基本变量类型(包含这个基本类型的具体数值),引用对象的变量(会存放这个引用在堆里面的具体地址)
(3)方法区:可以被所有的线程共享,包含了所有的class和static变量
5. 值传递和引用传递
(1)值传递:在调用函数时,将实参复制一份传递到函数中,在函数中对参数进行修改,不会影响到实际参数。
public static void main(String[] args) {
int a = 1;
System.out.println(a); // 1
dome3.change(a);
System.out.println(a);// 1
}
public static void change(int i){
i=10;
}
(2)引用传递:在调用函数时,将实参的地址传递到函数中,在函数中对参数进行修改,会影响到实际参数。(传递的不是实际的对象,而是对象的引用,外部对引用对象所做的改变会反映到所有的对象上)
public class dome3 {
public static void main(String[] args) {
Person per = new Person();
System.out.println(per.name);//null
dome3.change(per);
System.out.println(per.name);//小c
}
public static void change(Person person){
person.name="小c";
//person是一个具体的对象,指向的是 Person per = new Person();
//这是一个具体的人,可以改变属性。
}
}
class Person{
String name;
}
6. 面向过程与面向对象
(1)面向过程:步骤简单清晰,按照步骤顺序往下执行,适合处理一些较为简单的问题;(具体)
(2)面向对象:物以类聚,分类的思维方式,适合处理复杂的问题,适合处理需要多人协作的问题。(抽象)
面向对象描述复杂的事物,从宏观上把握,从整体上合理分析,搭建框架,具体执行需要面向过程的思路去处理流程。面向对象和面向过程不可分割。
7. 面向对象编程(oop)
本质:以类的方式组织代码,以对象的形式封装数据。
抽象:从众多的事物中抽取出共同的,本质性的特征抽取出来。
(认识论)先有对象后有类,对象是具体的事物,类是对对象的抽象。
(代码运行)先有类后有对象,类是对象的模板。
8. 静态方法和非静态方法
静态方法:static
public static void fun(){
}
//在调用时
类名.fun();
非静态方法
public void fun(){
}
//调用时
实例化这个类 class c = new class(); c.fun();
9. 类和对象
(1)类:一种抽象的数据类型,对某一类事物整体的描述/定义,不能代表某一个具体的事物
(2)对象:抽象概念的具体实例,如张三是人的一个具体实例。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本