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)对象:抽象概念的具体实例,如张三是人的一个具体实例。

posted @   浑浑噩噩一只小迷七  阅读(19)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
点击右上角即可分享
微信分享提示