JAVA复习Day7
8、面向对象编程
8.1IDEA的快捷键及及其模板的使用
8.1.1模板的创建及使用
模板创建
首先找到settings
! 1
! 2
! 3
8.1.2快捷键
快捷键都可以自己进行设置
同样找到seetings
! 1
! 2
8.2包
8.2.1包的作用
1、区分相同名字的类
2、当类很多时,可以很好的管理类
3、控制访问范围
8.2.2包的基本语法和本质
基本语法
package 关键字 表示打包
本质
实际上就是创建不同的文件夹来保存类文件
! com.xiaoqiang和com.xiaoming是包名,里面的Dog是类
! 测试的程序
! 程序结果运行图
8.2.3包的命名
命名规则:只能包含数字,字母下划线,小圆点,但是不能用数字开头,不能是关键字或保留字
命名规范:一般是小写字母+小圆点
8.2.4常用的包
java.long.* 是基本包,默认引入,不需要再引入
java.util.* 系统提供的工具包,工具类,使用Scanner
java.net.* 网络包,网络开发
java.awt.* 是做java的界面开发,GUI
8.2.5如何引入包
语法:import 包;引入一个包的主要目的就是要使用该包下的类
需要哪个包就导入那个类,不建议使用*导入
8.2.6包的使用细节和注意事项
package的作用是声明当前类所在的包,需要放在类的最上面,一个类中最多只有一句package
import指令位置放再package的下面,在类定义前面,可以有多句且没有顺序要求
8.3访问修饰符
8.3.1基本介绍
4种访问控制修饰符,用于控制方法和属性的访问权限
public 对外公开
protected 对子类和同一个包中的类公开
没有修饰符号 向同一个包的类公开
private 只有类本身可以访问,不对外公开
8.3.2使用的注意事项
修饰符可以用来修饰类中的属性,成员方法以及类
只有默认的和public才能修饰类,并且遵循上述访问权限的特点
成员方法的访问规则和属性完全一样
8.4面向对象编程三大特征
面向对象编程三大特征:封装,继承,多态
8.4.1封装基本介绍
封装
把抽象的数据和对数据的操作封装在一起,数据保护在内部,程序的其他部分只有通过被授权的操作,才能对数据进行操作。例如OS,虽然计算机的原始很丑陋,但是经过OS和一些简单易操作的界面让用户来使用
封装的理解和好处
隐藏细节,可以对数据进行验证,保证安全合理
8.4.2封装实现的步骤
1、将属性进行私有化
2、提供一个公有的方法,对属性进行判断并赋值
3、提供一个公有的方法,用于获取属性的值
class Person {
public String name;//姓名公开
private int age;//年龄私有
private double salary;//工资私有
public String getName() {
return name;
}
public void setName(String name) {
if (name.length() >= 2 && name.length() <= 6) {//业务逻辑,进行判断
this.name = name;
} else {
System.out.println("名字的长度不对,需要2-6,给定一个默认名字");//输出提示信息
this.name = "无名者";
}
}
public int getAge() {
return age;
}
public void setAge(int age) {
if (age >= 1 && age <= 120) {//业务逻辑,进行判断
this.age = age;
//判断年龄是否在范围内,如果在范围内就返回
} else {
System.out.println("年龄需要在1-120");//输出提示信息
this.age = 18;//给一个默认年龄
}
}
public double getSalary() {
return salary;
}
public void setSalary(double salary) {
this.salary = salary;
}
}
public class Main {
public static void main(String[] args) {
Person person = new Person();
person.setAge(9090);
person.setName("milan建立汉朝");
person.setSalary(30000);
System.out.println(person.info());
}
}
! 结果运行图
8.4.3构造器和setxxx方法
当使用构造器的时候可能会导致业务逻辑出现错误,所以直接在构造器的下面调用setxxx方法即可