一、类的封装
1.为什么要对类进行封装:
将类的相关属性进行隐藏,不对外开放。避免一些安全性问题。
2.封装最常见的例子:
就是针对实体类。
3.需要掌握如何正确编写实体类:
例如:学生实体类为例: 拥有id name sex 三个属性。 步骤1:创建该类 步骤2:声明属性 需要通过private修饰 步骤3:由于属性都被私有化了。所以外部无法通过属性来进行操作。所以需要对外开放若干个方法,对属性进行操作。 步骤4:对属性进行set/get方法的创建 可以通过快捷键的方式 步骤5:需要生成一个toString方法,原因:随时检查实体类的属性值是否正确 如果没有加,打印对象将会得到内存地址 加了toString,打印对象将会得到对象的属性值。 步骤6:创建对应的构造方法
构造方法的概念: 1.构造方法是一个特殊的方法。无法被显示调用,只能在被实例化的时候自动调用。 2.意义:实例化(没有构造方法就无法实例化)。 3.每个类都至少含有一个构造方法,如果没有声明就说明存在一个默认的无参构造方法 类名 变量名 = new 类名();//这里没有参数 4.一般来说:一个类至少有2个构造方法,1个无参构造方法 1个有参构造方法。
package com.yyzy.entity;
public class Student {
private int id; private String name; private char sex; public Student() {//空参的构造方法 ,有了它 别处才可以 }
public Student(int id, String name, char sex) { this.id = id; this.name = name; this.sex = sex; }
public int getId() { return id; } public void setId(int id) { this.id = id;//加了this表示当前类下的属性,没有加this就是方法的参数列表的属性 } public String getName() { return name; } public void setName(String name) { this.name = name; } public char getSex() { return sex; } public void setSex(char sex) { this.sex = sex; } }
4.今日知识点总结:
如果可以从0到1 正确编写一个实体类,且知道每行代码的意义,就表示今天的知识点掌握透了。 习题 : 有一个Person实体类、拥有Id name age 三个属性。 将其声明成一个实体类
package com.yyzy.entity;
public class Person {
private int id; private String name; private int age; public Person() {//空参构造方法 有了它。在别处才可以通过Person p = new Person(); 来实例化 } //有参构造方法 反问:上面明明写了无参的为什么还要写有参的。可不可以不写 //当然可以不写 ,但是如果只有无参的,那么实例化之后需要一一赋值。比较麻烦 //如果有 有参 实例化的同时 即可完成赋值操作 //例如 Person p = new Person(123, "张三" , 18); public Person(int id, String name, int age) { this.id = id; this.name = name; this.age = age; } public int getId() { return id; } public void setId(int id) { this.id = id; } 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; } @Override public String toString() { return "Person [id=" + id + ", name=" + name + ", age=" + age + "]"; } }
二、 Java的四大修饰符
public : 任何地方都可以访问。protected : 受保护,只有在同一个包下,或者不同包,但是具有继承关系可以访问。default (不写) :默认的:只有在同一个包下,可以访问。private : 私有的,只有当前类可以访问。