JAVA------day05

1.类
属性(是什么)
姓名,年龄。
行为(能做什么)
吃饭,喝水,睡觉,学习。

成员变量(属性):String name//姓名,int age//年龄
成员方法(行为):无static
public void eat()//吃饭
public void sleep()//睡

Ps:
1.成员变量是直接定义在类当中,在方法外。
2.成员方法不要写static关键字。
3.有static不需要new出来一个对象可以直接调用!!!!


2.对象
通常情况下一个类并不能直接使用,而是要根据类创建一个对象才可以使用。
1.导包:指出需要的类在什么位置,如果和当前类在同一个包中则不用写。
2.创建:
格式: 类名 对象名 = new 类名();
3.使用:
分为两种情况:

成员变量:对象名.成员变量名
成员方法:对象名.成员方法名(参数)

如果成员变量没有进行赋值,那么将会有一个默认值,规则和数组一样。


3.一个对象的内存图
!!!看书!!!


4.面向对象三大特性之封装性
1.方法就是一种封装
2.关键字private也是一种封装


5.关键字private
引例:比如我们用int定义一个年龄,当我设置年龄为负数时,显然不符合实际。这时候我们只需要在Int前面加上一个private,一旦使用private之后,在本类中可以任意访问,在该类之外就无法直接访问。

这时候如果还想在该类外访问参数,这时候就需要间接访问。
间接访问private成员变量,就是定义一对儿Getter/Setter方法
必须是setxxxx或者是Getxxxxx命名规则
对于Getter来说,不能有参数,返回值类型和成员变量对应
对于Setter来说,不能有返回值,参数类型和成员变量对应。

对于基本类型当中的boolean值,Getter方法一定要写成isXXX的形式,而setxxx规则不变


6.This关键字


7.成员变量与局部变量
1.定义的位置不一样:
局部变量:方法的内部
成员变量:在方法的外部,直接写在类之中

2.默认值不一样:
局部变量:没有默认值,如果想要使用必须手动进行赋值
成员变量:如果没有赋值,会有默认值,规则和数组一样。

3.作用范围不一样:
局部变量:只有方法当中才可以使用,除了方法就不能使用
成员变量:整个类都可以使用。

4.内存的位置不一样:
局部变量:位于栈内存
成员变量:在堆内存

5.生命周期不一样
局部变量:随着方法进栈而产生,随着方法出栈而消失
成员变量:随着对象创建而诞生,随着对象被垃圾回收而消失。


8.对象类型作为方法的返回值
当使用一个对象类型作为方法的返回值的时候,返回值其实就是对象的地址值


9.构造方法
格式:
public 类名称(参数类型 参数名称,…){
方法体
}

注意:
1.构造方法必须和类名称完全一样,就连大小写也要一样
2.构造方法不要写返回类型,void也不要。
3.构造方法不能不能return一个具体的返回值
4.如果没有编写任何构造方法,编译器会自动编写一个构造方法,没有参数,没有方法体。
!!5.一旦自己编写了一个构造方法,那么编译器就不再默认编写其他构造方法。!!!!!
6.构造方法可以重载

作用:
当用new关键字创建的时候,类名称就是方法名


10.标准的类
1.所有的成员变量都要使用private关键字修饰
2.为每一个成员变量编写一对儿Setter/Getter(IDEA快捷键 alt+insert,选择Getter and Setter, 按住shift把所有的成员变量都选上)
3.编写一个无参数的构造方法((IDEA快捷键 alt+insert,选择Constructor, 选择selete none )
4.编写一个全参数的构造方法((IDEA快捷键 alt+insert,选择Constructor,里面的都选上)
这个的标准类叫做Java Been

例:
Student 类

public class Student {
    private  String name;//姓名
    private  int age ;//年龄
    public Student() {
    }
    public Student(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 zhulei {
    public static void main(String[] args) {
        Student stu1 = new Student();
        stu1.setAge(20);
        stu1.setName("AsukaShin");

        System.out.println("姓名:" + stu1.getName() + ",年龄:" + stu1.getAge());

        Student stu2 = new Student("tiga", 21);
        System.out.println("姓名:" + stu2.getName() + ",年龄 " + stu2.getAge());

        stu2.setAge(22);
        System.out.println("姓名:" + stu2.getName() + ",年龄 " + stu2.getAge());

    }


}

你可能感兴趣的:(JAVA------day05)