Java学习笔记05

本文详细介绍了Java编程中的类与对象概念,成员变量与局部变量的区别,包括它们的声明位置、初始值和内存分配。此外,文章探讨了构造方法的作用及定义,包括无参构造器的自动添加以及this关键字的使用,如在构造方法中调用成员变量和方法。还讨论了方法重载的基本原则,并展示了引用类型数组的定义与使用,以及可能出现的空指针异常及其解决方案。
摘要由CSDN通过智能技术生成

复习

        

类和对象:

类:所有同种对象共同拥有的特征/行为,抽象出来成为类

对象:符合类的特性并且真实存在的个体

实例化对象  Student stu = new Student()

成员变量

       默认值:基本数据类型:0

                   引用数据类型:null

成员方法

局部变量 和 成员变量的区别:

1).声明位置

成员变量定义在类中。
局部变量定义在方法中。

2).初始值

        成员变量需初始化

        局部变量有初始值

3).个数

4).JVM内存中的区别

成员变量存储在堆内存的对象中。
局部变量存储在栈内存的方法中。

1.构造方法/构造器

        

1)目的: 给成员变量初始化

2)构造方法的定义:

a.方法名和类名一致

b.没有返回值类型     注意: void也不行,表示没有返回值

c.默认添加无参构造方法

d.如果自定义有参构造方法,不会再默认添加无参构造方法

public class Student {
    //成员变量
    String name ;
    int age;

    //构造方法/构造器 - 系统默认生成
   public  Student(){//无参构造方法
        //目的: 给成员变量初始化
        //name = "lucy";

       //调用有参构造方法
       //this("marry",33);
    }

    //有参构造方法
    /*
        this关键词: 表示当前对象(动态值)
     */
    Student(String name, int age){
        //调用无参构造方法 - 只能放在构造方法中的一行
        this();
        //如果成员变量 和 局部变量同名时,会就近原则使用
        //只能使用this关键词区分
        this.name = name;
        this.age = age;
        //调用成员方法
       /* this.*/study("java");
    }


    //成员方法
    void study(String sub){
        System.out.println("正在学习:" + sub);
    }

}

2.this关键词

1).this关键词,表示当前对象

2).在构造方法中,this是可以调用自己的成员变量

如果成员变量名和局部变量名,同名时必须使用this关键词来表示成员变量,不能省略

3).在构造方法中,可以调用自己的成员方法     this关键词可以省略

4).this也可以调用自己的构造方法,this(参数),this不能省略

注意:不能同时调用,会造成死循环,并且只能放在构造器的第一行使用

public class Student {
 private String name;
 private int age;
 public void setName(String name) {
 // name = name;
 this.name = name;
 }
 public String getName() {
 return name;
 }
 public void setAge(int age) {
 // age = age;
 this.age = age;
 }
 public int getAge() {
 return age;
 }
}

3.方法重载

1)方法名一样,方法参数不一样的几个方法,称之为方法重载

2)参数不一样的情况:

a.个数不同

b.类型不同

c.顺序不同

d.和参数名没有任何关系

3).方法重载和返回值无关

4).前提: 必须是在同一个类中才能造成方法的重载

    public static void t(int a){
        
    }

    public static void t(int a,int b){

    }

    public static void t(int a,String b){

    }

    public static void t(String a,int b){

    }
    

4.数组和引用数据类型结合 - 引用类型数组

1)数组定义方式

a.静态赋值

ps: Student s = {new Studnet(),new Studnet()};

Student s = {new Student(),new Student()};

b.动态赋值

Student s = new Student[2];

2)有可能出现的异常:

NullPointerException - 空指针异常

a.产生的原因:调用了空值的 成员变量 和 成员方法

b.解决办法:调用前 new一个对象(实例化对象)

3)引用类型数组的使用步骤:

a.给数组初始化

Student s = new Student[2];

b.给数组元素初始化

s[0] = new Student();

s[1] = new Student();

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值