Java面向对象01

1.什么是类?什么是对象?

  • 现实生活是由很多对象组成的,基于对象抽出了类

  • 对象:软件中真实存在的单个个体/东西       类:类别/类型,代表一类个体

  • 类是对象的模板,对象是类的具体的实例

  • 类中包含:对象的属性/特征---------成员变量           对象的功能/行为/动作-----------方法

  • 一个类可以创建多个对象

2. 如何创建类?如何创建对象?如何访问成员?

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

    //方法
    void study(){
        System.out.println(name+"在学习...");
    }
    void sayHi(){
        System.out.println("大家好,我叫"+name+",今年"+age+"岁了,家住"+address);
    }
}

public class StudentTest {
    public static void main(String[] args) {
        //创建一个学生对象
        Student zs = new Student();
        //访问成员变量
        zs.name = "zhangsan";
        zs.age = 25;
        zs.address = "河北廊坊";
        //调用方法
        zs.study();
        zs.sayHi();

        Student ls = new Student();
        ls.name = "lisi";
        ls.age = 25;
        ls.address = "黑龙江佳木斯";
        ls.study();
        ls.sayHi();

        //1)创建了一个学生对象
        //2)给所有成员变量赋默认值
        Student ww = new Student();
        ww.study();
        ww.sayHi();

    }
}

3. 方法的签名:方法名+参数列表

4. 方法的重载(overload):---------------------便于用户的调用

  • 发生在同一类中,方法名相同,参数列表不同
  • 编译器在编译时会根据方法的签名自动绑定方法
//方法重载的演示
public class OverloadDemo {
    public static void main(String[] args) {
        Aoo o = new Aoo();
        o.show();
        o.show("zhangsan");
        o.show(25);
        o.show("zhangsan",25);
        o.show(25,"zhangsan");
    }
}

class Aoo{
    void show(){}
    void show(String name){}
    void show(int age){}
    void show(String name,int age){}
    void show(int age,String name){}
    //int show(){ return 1; } //编译错误,重载与返回值类型无关
    //void show(String address){} //编译错误,重载与参数名称无关
}

 5. 补充:

5.1 创建对象:

            引用
数据类型  引用类型变量  指向      对象
Student     zs        =   new Student();

5.2 成员变量的默认值:

byte,short,int,long,char---------------0
float,double---------------------------0.0
boolean--------------------------------false
引用类型---------------------------------null

6. 构造方法:构造函数、构造器、构建器------------------------复用给成员变量赋初始值代码

  • 作用:给成员变量赋初始值
  • 与类同名、没有返回值类型
  • 在创建(new)对象时被自动调用
  • 若自己不写构造方法,则编译器默认提供一个无参构造方法,若自己写了,则不再默认提供
  • 构造方法可以重载

7. this:指代当前对象,哪个对象调用方法它指的就是哪个对象 

-----------只能用在方法中,方法中访问成员变量之前默认有this.

this的用法:

this.成员变量名----------------------------访问成员变量

注意:当成员变量与局部变量同名时,若想访问成员变量则this不能省略

class Student {
    String name; //成员变量(整个类中)
    int age;
    String address;
    //局部变量(当前方法中)
    Student(String name,int age,String address){
        this.name = name;
        this.age = age;
        this.address = address;
    }

    void study(){
        System.out.println(name+"在学习...");
    }
    void sayHi(){                       
        System.out.println("大家好,我叫"+name+",今
                           年"+age+"岁了,家住"+address);
        }
    }
}
  • this.方法名()---------------------------------调用方法(一般不用)
  • this()-------------------------------------------调用构造方法(一般不用)

8.  null:表示空,没有指向任何对象

若引用的值为null,则该引用不能进行任何点操作了,

若操作则发生NullPointerException空指针异常

 9. 补充:

  1. 成员变量:类中、方法外,作用范围为整个类中

    局部变量:方法中(包括方法参数),作用范围为当前方法中

  2. java规定:成员变量和局部变量是可以同名的,使用的时候默认采取的是就近原则

  3. 内存管理:由JVM来管理的

    • 堆:new出来的对象(包括成员变量)
    • 栈:局部变量(包括方法参数)
    • ArrayIndexOutOfBoundsException:数组下标越界异常

      NullPointerException:空指针异常

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值