Java基础知识回顾复习(类,封装,static,this)

复习回顾

  • 类中有且仅有5大成分(五大金刚)
    • 成员变量Field:描述类或者对象的属性信息的。

    • 成员方法Method:描述类或者对象的行为的。

    • 构造器(构造方法,Constructor): 初始化类的一个对象返回。

    • 代码块:

    • 内部类:

  • 封装
    • 面向对象的三大特征之一:封装,继承,多态

    • 形成了规范,即使毫无意义还是会这样写代码!

    • 合理隐藏,合理暴露。

    • 封装的规范:成员变量私有,方法一般公开,提供成套的getter和setter方法暴露成员变量的取值和赋值。

    • 封装的作用:提高安全性,提高代码的组件化思想。

    • 封装已经成为Java代码的规范,即使毫无意义,我们也要这样写代码(成员变量私有,方法公开)

  • this关键字
    • this代表了当前对象的引用。

    • this可以出现在构造器和方法中。

    • this出现在构造器中代表构造器正在初始化的对象。

    • this出现在方法中,哪个对象调用方法,this就代表哪个对象。

    • this可以访问对象的成员变量,区分成员变量是局部的还是对象中的成员变量。

  •  static关键字
    • 静态
    • 修饰方法和变量都是属于类的,没有static修饰的方法和变量是属于每个对象的

 1.类的定义格式

修饰符 class 类名{
    // 类中的五大成分。
    // 1.成员变量(属性)
    // 2.成员方法 (行为) 
    // 3.构造器 (初始化类的对象数据的)
    // 4.内部类
    // 5.代码块
}



//例如
public class Student {
    // 1.成员变量
    public String name ;
    public char sex ; // '男'  '女'
    public int age;
}


//如何通过类创建对象
类名   对象名称  =  new  类名();

//例如创建一个学生对象
Student stu = new Student();

2.封装的步骤和步骤实现

  1. 使用private关键字来修饰成员变量。
  2. 使用public修饰getter和setter方法。
public class Student {
    //private修饰成员变量
    private String name;
    private int age;


    //pulbic修饰getter和setter方法
    public void setName(String n) {
      	name = n;
    }

    public String getName() {
      	return name;
    }

    public void setAge(int a) {
        if (a > 0 && a <200) {
            age = a;
        } else {
            System.out.println("年龄非法!");
        }
    }

    public int getAge() {
      	return age;
    }
}

 构造器

        作用:通过调用构造器可以返回一个类的对象,构造器同时负责帮我们把对象的数据(属性和行为等信息)初始化好。

        格式:

修饰符 类名(形参列表) {
    // 构造体代码,执行代码
}

        应用:

        定义一个学生类

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

    // 2.构造器
    public Student() {
		System.out.println("无参数构造器被调用");
    }
}

        接下来通过调用构造器得到两个学生对象

public class CreateStu02 {
    public static void main(String[] args) {
        // 创建一个学生对象
        // 类名 变量名称 = new 类名();
        Student s1 = new Student();
        // 使用对象访问成员变量,赋值
        s1.name = "张三";
        s1.age = 20 ;

        // 使用对象访问成员变量 输出值
        System.out.println(s1.name);
        System.out.println(s1.age); 

        Student s2 = new Student();
        // 使用对象访问成员变量 赋值
        s2.name = "李四";
        s2.age = 18 ;
        System.out.println(s2.name);
        System.out.println(s2.age);
    }
}

this关键字的作用

        作用:this代表所在类的当前对象的引用(地址值),即代表当前对象

        应用:用于getter和setter方法,this出现在实例方法中,谁调用这个方法(哪个对象调用这个方法),this就代表谁(this就代表哪个对象)

public class Student {
    private String name;
    private int age;

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

    public String getName() {
      	return name;
    }

    public void setAge(int age) {
        if (age > 0 && age < 200) {
            this.age = age;
        } else {
            System.out.println("年龄非法!");
        }
    }

    public int getAge() {
      	return age;
    }
}

static关键字

        static关键字的使用,他可以用来修饰成员变量和成员方法,被static修饰的成员是属于类的放在静态区中,没有static修饰的成员变量和方法则是属于对象的。

        有static修饰成员变量,说明这个成员变量是属于类的,这个成员变量成为类变量或者静态成员变量。直接用类名访问即可。因为类只有一个,所以静态成员变量在内存区域中也只存在一份,所有的对象都可以共享这个变量。

定义格式

修饰符 static 数据类型 变量名 = 初始值;  



//举例
public class Student {
    public static String schoolName = "黑龙江八一农垦大学"; // 属于类,只有一份。
    // .....
}


静态成员变量的访问:

格式:类名.静态变量

public static void  main(String[] args){
    System.out.println(Student.schoolName); // 黑龙江八一农垦
    Student.schoolName = "哈工大";
    System.out.println(Student.schoolName); // 哈工大
}

 实例成员变量的访问:

        无static修饰的成员变量属于每个对象的,这个成员变量叫实例变量,之前我们写成员就是实例成员变量,需要注意的是 实例成员变量属于每个对象,必须创建类的对象才能访问。

格式:对象.实例成员变量

 静态方法及其访问

        有static修饰成员方法,说明这个成员方法是属于类的,这个成员方法称为类方法或者静态方法。直接用类名访问即可。因为类只有一个,所以静态方法在在内存区域中也只存在一份,所有的对象都可以共享这个方法。

格式:类名.静态方法名称

public class Student{
    public static String schoolName = "传智播客"; // 属于类,只有一份。
    // .....
    public static void study(){
    	System.out.println("我们都在黑马程序员学习");   
    }
}



public static void  main(String[] args){
    Student.study();
}

实例方法及其访问

        无static修饰的成员方法属于每个对象的,这个成员方法叫实例方法。需要注意的是 实例方法是属于每个对象,必须创建类的对象才可以访问

格式:对象.实例方法

public class Student {
    // 实例变量
    private String name ;
    // 2.方法:行为
    // 无 static修饰,实例方法。属于每个对象,必须创建对象调用
    public void run(){
        System.out.println("学生可以跑步");
    }
	// 无 static修饰,实例方法
    public  void sleep(){
        System.out.println("学生睡觉");
    }
    public static void study(){
        
    }
}




public static void main(String[] args){
    // 创建对象 
    Student stu = new Student ;
    stu.name = "徐干";
    // Student.sleep();// 报错,必须用对象访问。
    stu.sleep();
    stu.run();
}

总结:

  1. 当static修饰成员变量或者成员方法时,该变量称为静态变量,该方法称为静态方法。该类的每个对象都共享同一个类的静态变量和静态方法。任何对象都可以更改该静态变量的值或者访问静态方法。但是不推荐这种方式去访问。因为静态变量或者静态方法直接通过类名访问即可,完全没必要用对象去访问。
  2. 无stataic修饰的成员变量或者成员方法,称为实例变量,实例方法,实例变量和实例方法必须创建类的对象,然后通过对象来访问。
  3. static修饰的成员属于类,会存储在静态区,是随着类的加载而加载的,而且只加载一次,所以只有一份,节省内存。存储于一块固定的内存区域(静态区),所以,可以直接被类名调用。它优先于对象存在,所以,可以被所有对象共享。
  4. 无static修饰的成员,是属于对象,对象有多少个,他们就会出现多少份,所以必须由对象调用。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

YHB0731

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值