Java基础总结|| 二 ||

一.数组

数组的定义

1.动态初始化:
数据类型[] 数组名 = new 数据类型[数组的长度]

int[] arr=new int[6];

2.静态初始化:
数据类型[] 数组名 = new 数据类型[]{元素1,元素2,元素3…}

3.简化静态初始化:
数据类型[] 数组名 = {元素1,元素2,元素3…}

静态初始化和动态初始化的区别

动态初始化:
定义的时候,没有具体的元素,但是直接定义了长度
当我们定义数组的时候,不知道将来要存什么元素的时候
静态初始化:
定义的时候,有具体的元素,但是可以根据存储的元素的个数确定长度
当我们定义数组的时候,确定了存什么元素

获取元素

注意:直接输出数组名,是一个地址值
地址值:内存中的位置
格式:数组名[索引值]

索引值:
每一个元素在数组中的位置,编号
0开始,最大索引值是数组的长度-1
特点:唯一,不重复

代码演示:

public class Demo02Array {
  public static void main(String[] args) {
      String[] arr = {"张无忌","赵敏"};
      System.out.println(arr);    //[Ljava.lang.String;@ba4d45

      String num1 = arr[1];
      System.out.println(num1);
      System.out.println(arr[2]);
      System.out.println(arr[0]);
  }
}

获取数组长度

格式:
数组名.length

数组的遍历

String[] arr = {"哈哈","呵呵","啦啦"};
for (int i = 0; i < arr.length; i++) {
    System.out.println(arr[i]);
}

数组的异常

1.数组索引越界异常:ArrayIndexOutOfBoundsException
原因:操作的数组超出了最大索引,或者最大长度
2.空指针异常:NullPointerException
原因:定义数组的时候,给了null,然后操作数组中的元素
3.代码演示:

   public class Demo01ArrayProblem {
    public static void main(String[] args) {
       /* int[] arr = new int[3];
        arr[3] = 10;
*/
       String[] arr = {"哈哈","呵呵","嘻嘻嘻"};

        for (int i = 0; i < arr.length; i++) {
            System.out.println(arr[i]);
        }
        int[] arr1 = null;
        System.out.println(arr1[0]);
    }
}

二.方法

无参数无返回值的方法(最简单)

1.定义格式:public static void 方法名(){
方法体;
}
2.使用:(调用):
方法名();
3.注意事项:
a.方法不调用不执行
b.方法之间不能嵌套
c.方法的执行顺序只和调用顺序有关
d.调用方法的时候,要和下面的方法完全匹配(方法名,参数的数据类型,参数的个数)
e.void和return 值不能共存(void代表无返回值,return 值代表将结果返回,并且结束方法)
但是void能和return共存(return代表的结束方法)
f.一个方法中,不能连续写两个return
g.返回值类型要和返回得结果类型一致

有参数无返回值的方法

1.定义格式:
public static void 方法名(参数){
方法体
}
2.调用:
方法名(具体的值)

有参数有返回值的方法:

1.定义格式:
public static 返回值类型 方法名(参数){
方法体;
return 值;
}
2.调用
数据类型 变量名 = 方法名(具体的值)
System.out.println(方法名(具体的值))
3.注意:
返回给了谁,调用的谁.

三.类和对象:

1.类是一类事物的描述,是抽象的
对象是一类事物的具体体现,是具体的

2.定义类

类的定义:
属性(类的信息):成员变量–>定义在类中,方法外的,只要是本类中的方法都可以使用这个变量
注意:定义的时候不用初始化,有默认值

              数据类型 变量名;

 行为(类都能做什么):成员方法-->去掉static
     public 返回值类型 方法名(参数){
        方法体
     }
public class Person {
    String name;
    int age;

    public void eat(){
        
        System.out.println("太阳当空照");
  	  }
  }

创建对象:

格式:类名 对象名 = new 类名();

Person p = new Person();

四.成员变量和局部变量的区别

成员变量和局部变量的区别
类的定义位置[重点]
成员变量:类中,方法外
局部:方法中

作用范围[重点]
成员:整个类
局部:自己的方法

初始化不同[重点]
成员:有默认,不用初始化
局部:必须先初始化,再使用

内存的位置[了解]
成员:在堆中
局部:栈中

生命周期[了解]
成员:随着对象的创建而产生,随着对象的消失而消失
局部:随着方法的进栈而存在,随着方法的结束为结束

五.封装:

1.面向对象三大特征:封装 继承 多态

2.封装:让事物封装起来,不然给外界直接使用,外界看不见

3.封装的体现:
1.private
2.将代码放在方法中
4.赋值和取值
为成员变量赋值:setxxx()
获取成员变量值:getxxx()

5.this:
this代表的当前对象:谁调用this所在的方法,this就代表谁
this的使用:this.成员变量名 this.方法名(参数)
this的作用:区分重名的成员变量和局部变量

六.构造:

构造方法(构造器)
特点:
1.方法名和类名一致
2.没有static
3.没有返回值

无参构造(空参构造):
public 类名(){
}
作用:
1.用来直接new对象的,new对象之后,会执行空参构造
2.注意:
类中的空参构造方法,不写,java默认给一个

有参构造(满参构造)
public 类名(参数列表){
方法体
}
作用:
1.new对象
2.为属性赋值
3.执行有参构造

      注意:
         1.有参构造java不会默认给,需要我们自己手写
         2.如果写了有参构造,java将不再提供空参构造,所以,一般我们有参的,无参的都写上

定义一个标准的类
属性
构造
get/set
自动生成构造以及get/set快捷键:alt+insert

public class Person {
    private String name;
    private int age;
    
    public Person() {
    }

    public Person(String name, int age) {
        this.name = name;
        this.age = age;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }
}
----------------------------------------------------
public class Test {
    public static void main(String[] args) {
        //利用set为属性赋值
        Person p1 = new Person();
        p1.setName("张三");
        p1.setAge(18);
        System.out.println(p1.getName());
        System.out.println(p1.getAge());

        //利用有参构造赋值
        Person p2 = new Person("哈哈",30);
        System.out.println(p2.getName());
        System.out.println(p2.getAge());
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值