[JavaSE ]Day1:对象、封装、分包思想、static关键字
对象
1. 对象
指客观存在的事物,万物皆对象。
所谓对象,可以理解是自己的女朋友(男朋友)、厨师、洗衣机等等,可以指挥(使用)其完成某种功能的个体。
2. 类和对象的关系
类
类是对现实生活中一类具有共同属性和行为的事物的抽象。
类是对事物,也就是对象的一种描述,可以将类理解为一张设计图(模板),根据设计图,可以创建出具体存在的事物。
3. 类的组成
-
属性
该事物的各种特征
例如黑马学生事物的属性:姓名、年龄、毕业院校…
-
行为
该事物存在的功能(能够做的事情)
例如黑马学生事物行为:学习、Java编程开发。
4. 类和对象的关系
- 类是对象的描述
- 对象是类的实体
- 对象是通过类创建的
5. 类的定义
类的组成
属性
在类中通过成员变量来体现(类中方法外的变量)
行为
在类中通过成员方法来体现(和前面的方法相比去掉static关键字即可)
定义步骤
①定义类 public class 类名{
②编写类的成员变量 //成员变量
变量1的数据类型 变量1名;
…
③编写类的成员方法 //成员方法
方法1;
…
6.对象的创建和使用
创建对象
类名 对象名 = new 类名();
范例
Student s = new Student();
使用对象
使用成员变量
格式:对象名.变量名
范例:p.name
使用成员方法
格式:对象名.方法名()
范例:p.study();
案例:
public class TestStudent {
/*
创建对象的格式:
类名 对象名 = new 类名();
调用成员变量的格式:
对象名.变量名
调用成员方法的格式:
对象名.方法名();
*/
public static void main(String[] args) {
// 类名 对象名 = new 类名();
Student stu = new Student();
// 对象名.变量名
// 默认初始化值
System.out.println(stu.name); // null
System.out.println(stu.age); // 0
stu.name = "张三";
stu.age = 23;
System.out.println(stu.name); // 张三
System.out.println(stu.age); // 23
// 对象名.方法名();
stu.study();
// com.itheima.object1.Student@b4c966a
// 全类名(包名 + 类名)
System.out.println(stu);
}
}
7. private关键字
7.1 作用
是一个权限修饰符
可以修饰成员(成员变量和成员方法)
被private修饰的成员只能在本类中才能访问
7.2 private修饰的成员变量操作
private修饰的成员变量,如果需要被其他类使用,提供相应的操作。
- 提供“get变量名()”方法,用于获取成员变量的值,方法用public修饰
- 提供“set变量名(参数)”方法,用于设置成员变量的值,方法用public修饰,并且可以在此方法中增加判断操作。
7.3. private关键字的使用
需求
写一个标准类:
- 把成员变量用private修饰
- 提供对应的setXxx()/getXxx()方法
8. this关键词
概念
代表所在类的对象引用。
作用
可以调用本类的成员(变量,方法)
注意
方法被哪个对象调用,this就代表哪个对象
封装
简介
面向对象三大特征之一(封装,继承,多态)。
隐藏实现细节,仅对外暴露公共的访问方式。比如插线板。
封装的体现
1.属性私有化,并对外提供方法(方法内做判断)进行操作。
2.将代码抽取到方法中,这是对代码的一种封装
3.将属性抽取到类当中,这是对数据的一种封装。
封装的好处
- 提高了代码的安全性
- 提高了代码的复用性
构造方法的格式和执行时机
概述
构建、创造对象的时候,所调用的方法。
格式
- 方法名与类名相同,大小写也要一致
- 没有返回值类型,连void都没有
- 没有具体的返回值(不能由retrun带回结果数据)
案例:
public class Student {
/*
格式:
1. 方法名需要跟类名相同, 大小写也要一致
2. 没有返回值类型, 连void都没有
3. 没有具体的返回值(不能由return带回具体的结果)
*/
public Student(){
System.out.println("我是Student类的构造方法");
}
}
构造方法的作用
作用
本质作用是创建对象,但是也可以用于给对象的数据(属性)进行初始化。
构造方法的注意事项
构造方法创建注意事项
-
如果没有定义构造方法,系统将给出一个默认的无参数构造方法。
-
如果定义了构造方法,系统将不再提供默认的构造方法。
构造方法的重载
- 如果自定义了带参构造方法,还要使用无参数构造方法,就必须再写一个无参数构造方法。
推荐的使用方式
- 无论是否使用,都手动书写无参数构造方法,和带参数构造方法。
标准类的代码编写和使用
①成员变量
使用pivate修饰
②构造方法
提供无参多参构造方法
③成员方法
提供每一个成员变量对应set get
提供一个显示对象信息的show()
④创建对象并为其成员变量赋值的两种方式
无参构造方法创建对象后使用set赋值
使用带参构造方法直接创建带有属性值的对象
案例:
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 void show(){
System.out.println(name + "..." + age);
}
}
public class TestStudent {
public static void main(String[] args) {
// 1. 无参数构造方法创建对象, 通过setXxx方法给成员变量进行赋值
Student stu1 = new Student();
stu1.setName("张三");
stu1.setAge(23);
stu1.show();
// 2. 通过带参数构造方法, 直接给属性进行赋值
Student stu2 = new Student("李四",24);
stu2.show();
}
}
分类:
- Dao类 :管理存储数据(库管)
- Service类:业务逻辑处理(业务员)
- Controller类:和用户打交道(客服接待)
- entry类:入口,启动运行
- domain类:封装信息
小操作
- 退出当前正在运行的虚拟机: System.exit(0)
- **return:**退出当前方法
- alt+回车:另一个类中调用方法时创建方法快捷键
static关键字
-
static 关键字是静态的意思,是Java中的一个修饰符,可以修饰成员方法,成员变量
-
特点:被类的所有对象共享
是我们判断是否使用静态关键字的条件
随着类的加载而加载,优先于对象存在
对象需要类被加载后,才能创建
可以通过类名调用
也可以通过对象名调用
-
static注意事项
- 静态方法只能访问静态成员
- 非静态方法可以访问静态成员,也可以访问非静态成员
- 静态方法中是没有this关键字