Java基础第十天 - 封装

匿名对象

匿名对象顾名思义就是没有名字的对象,如:

 匿名对象常用于只调用一次对象或者常用于实参去传值。

封装

封装就是将方法和成员变量封存在一个容器中。

封装可以让代码安全性提高,同时可以多次使用代码,提高复用性,隐藏内部的实现方法,防止恶意修改。

封装原则

 将不想被别人知道的方法和实现过程封装起来,在提供公共的接口。

如:方法,对象(类), private

private关键字

 private关键字的意思是私有的,它只能被所定义的类里面的方法调用。

        private可以修饰方法和成员变量,但不能修饰类。

        (注意:public 关键字可以修饰 类, 方法, 成员变量,当一个文件有多个类时  

只能有一个public修饰的类。)

标准的封装(JavaBean)

当一个类文件里成员变量全是用 private 修饰,成员方法用public去修改成员变量时,我们称之为一个标准的JavaBean。

this关键字

        当成员变量名字和成员方法中定义的局部变量同名时,可以用this关键字来指定是成员变量。

注意:this代表的其实就是对象,谁调用谁就是this,比如:

Student  stu  = nuw Student();  当Student类中出现 this,那么这个this就是  stu。

this关键字解决了局部变量中隐藏属性的问题。

构造方法

 构造方法就是将类初始化的方法,

构造方法与类同名。同时,构造方法在创建类的时候会自动生成一个无参的构造方法。

语法:

public 类名(){
    
}

( )中可以写参数,没有就是无参构造,也是系统会自动生成,前提是没有重载。

注意:当自己写了构造方法,系统就不会生成无参的构造方法

类的组成

成员变量

成员方法

构造方法

给私有成员变量赋值的方法

  1. 通过setXX方法

  2. 带参的构造方法

  • Student s = new Student("参数"); 做了哪些?

  1. 把 Student.class 文件加载到内存中

  2. 在栈中为 s 开辟一块空间

  3. 在堆中为学生对象申请空间

  4. 给学生对象的成员变量进行默认初始化: null 0 null

  5. 给学生对象的成员变量进行显示初始化 : 张三 18 007

  6. 通过构造方法给成员变量进行初始化 : doubleyong 18 008

  7. 对象构造完成, 把地址值赋值给s

class Student7{
    private String name="张三";
    private  int age=18;
    private String stuNO="007";

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

    public Student7(int age, String stuNO) {
        this.age = age;
        this.stuNO = stuNO;
    }

    public Student7(String name) {
        this.name = name;
    }
    public Student7(){

    }

    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 String getStuNO() {
        return stuNO;
    }

    public void setStuNO(String stuNO) {
        this.stuNO = stuNO;
    }
}
public class Demo7 {
    public static void main(String[] args) {
        Student7 s  = new Student7("doubleyong",18,"008");

    }
}

static

static 是存储在方法区的 静态资源区。随着类加载而加载。

当有重复的 赋值时,可以将其赋值为静态资源,达到提高效率的目的。

静态变量与静态方法

static 是一个修饰符,修饰成员属性时,称为静态变量, 修饰成员方法,称为静态方法

static 的特点:

  1. 随着类的加载而加载

  2. 优先于对象

  3. 被类的所有对象共享

  4. 可以通过类名调用,也可以通过对象名调用,但是推荐使用类名调用

static 关键字的注意事项

  1. 静态方法里没有this关键字(就是不能用this)

    如何理解 ?

    静态随着类的加载而加载,this是随着对象的创建而存在

  2. 静态方法只能访问静态变量和静态方法

    成员方法:即可以调用成员属性,也可以调用静态属性

    记住点:静态的只能访问静态的

静态变量与成员变量的区别

所属不同
        静态变量属于类,所以也称为为类变量   
        成员变量属于对象,所以也称为实例变量(对象变量)   

内存中位置不同
        静态变量存储于方法区的静态区

​        成员变量存储于堆内存

内存出现时间不同
        静态变量随着类的加载而加载,随着类的消失而消失

​        成员变量随着对象的创建而存在,随着对象的消失而消失

调用不同
        静态变量可以通过类名调用,也可以通过对象调用

​        成员变量只能通过对象名调用

main方法

public static void main(String[] args){
   
}

public : 公共的/公开的  访问权限最大, main 方法由jvm调用 ,所以权限足够大

static : 静态的 不需要创建对象,通过类名可以直接调用。方便jvm调用

void : 方法返回值类型给调用者 由jvm调用的 返回值给jvm是没有意义的

main: 是一个常见的方法入口

String[] args : 字符 中数组 ,用户输入的

这个东西是早期的键盘录入,已经被Scanner淘汰了

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值