
让类的属性私有化(private),提供公共接口 (getXXXX)
封装性的体现,需要权限修饰符来配合
JAVA规定的4种权限
private, default, protected, public
4种修饰符可以修饰:属性、方法、构造器、内部类
修饰类的话,只能使用: default, public
总结封装性:JAVA提供了4种权限修饰符来修饰类及类的内部结构,体现类及类的内部结构在被调用时的可见性的大小。
构造器 Constructor()构造器的作用:创建对象,初始化对象
一旦我们显式的定义了类的构造器之后,系统就不再提供默认的空参构造器了
JavaBean是一种java语言写成的可重用组件。所谓javaBean额按,是指符合如下标准的JAVA类:
类是公共的有一个无参的公共构造器有属性,且有对应的get、set方法
调用内部代码
public Person(int age) {
this();
this.age = age;
}
public Person(String name, int age) {
///直接调用了上一个构造器,可以用this()直接调用自身构造器
//构造器的调用必须在首行
this(age);
this.name = name;
}
关键词的使用
一、package关键字的使用
1. 为了更好的事项项目中类的管理,提供包的概念
2. 使用package声明类或接口所属的包,声明在源文件的首行
3. 包,属于标识符,遵循标识符的命名规则
4. 每"."一次,就代表一层文件目录
同一个包下,不能命名同名的接口、类
MVC的设计模式
model / view / controller
import关键字的使用
import java.util.*; //导入util包下的所有结构 // 包重名的情况 Account act = new Account(1000); //换包重名,类的全命名。如果在源文件中,使用了不同包下的同名的类,则必须至少有一个类需要以全命名 com.atguigu.exer3.Account acct1 = new com.atguigu.exer3.Account(1000, 2000, 0.0123);
import static 导入指定类或包的静态接口
import static java.lang.System.*;
import static java.lang.Math.*;
out.print("111");
long num = round(11111);
MySQL
17 触发器
触发器是由事件来触发某个 *** 作,这些事件包含INSERT, UPDATe, DELETE
//新建一张空表 CREATE TABLE emps_back1 AS SELECT * FROM emps WHERe 1=2;
综合练习1
# 列出emp表中各部门的部门号,最高工资,最低工资 SELECt dept_no, MAX(sal), MIN(sal) from emp group by dept_no; # 列出emp表中各部门job 含’REP’的员工的部门号,最低工资,最高工资 SELECt dept_no, MAX(sal), MIN(sal) from emp group by dept_no having job like '%REP%' # 对于emp中最低工资小于7000的部门中job为'SA_REP'的员工的部门号,最低工资,最高工资 select dept_no as 部门号, MAX(sal) as 最低工资, MIN(sal) as 最低工资 from emp a where job like '%SA_REP%' and 7000 > ( //子函数找出min salary select MIN(sal) from emp b where a.dept_no = b.dept_no group by dept_no ) group by dept_no # 写出对上题的另一解决方法 select dept_no, MAX(sal), MIN(sal) from emp a where job like '%SA_REP%' and dept_no in ( //找 dept_no 这个区间值 select dept_no from emp b where a.dept_no = b.dept_no group by dept_no having min(sal) > 7000 ) group by dept_no # 根据部门号由高而低,工资由低而高列出每个员工的姓名,部门号,工资 select ename, deptno, sal from emp order by deptno DESC, sal ASC # 列出'Abel'所在部门中每个员工的姓名与部门号 select ename, deptno from emp where deptno = ( select deptno from emp where enmae = 'Abel'; ) # 列出每个员工的姓名,工作,部门号,部门名 select e.ename, e.job, e,deptno, d.dname from emp e, dept d where e.deptno = d.deptno # 列出emp中工作为'SH_CLERK'的员工的姓名,工作,部门号,部门名 select e.ename, e.job, e,deptno, d.dname from emp e, dept d where e.deptno = d.deptno and e.job = 'SH_CLERK' # 对于emp中有管理者的员工,列出姓名,管理者姓名(管理者外键为mgr) select e.ename, m.ename from emp e, emp m where m.empno = e.empno # 对于dept表中,列出所有部门名,部门号,同时列出各部门工作为'SH_CLERK'的员工名与工作 select d.dname, d.deptno, e.ename, e.job from emp e, dept d where e.deptno = d.deptno group by deptno having e.job = 'SH_CLERK' # 对于工资高于本部门平均水平的员工,列出部门号,姓名,工资,按部门号排序 select a.deptno, a.ename, a.sal from emp a where a.sal > ( select AVG(sal) from emp b where a.deptno = b.deptno ) order by a.deptno # 对于emp,列出各个部门中工资高于本部门平均水平的员工数和部门号,按部门号排序 select count(*), deptno from emp a where a.sal > ( select avg(sal) from emp b where a.deptno = b.deptno ) order by a.deptno # 对于emp中工资高于本部门平均水平,人数多于1人的,列出部门号,高于部门平均工资的人数,按部门号排序 select count(*), deptno from emp a where a.sal > ( select avg(sal) from emp b where a.deptno = b.deptno ) and count(*) > 1 order by a.deptno # 对于emp中工资高于本部门平均水平,且其人数多于3人的,列出部门号,部门人数,按部门号排序 select count(*), deptno from emp a where a.sal > ( select avg(sal) from emp b where a.deptno = b.deptno ) and count(*) > 3 order by a.deptno 子函数可以出现在列名和where中 ## 对于emp中低于自己工资至少5人的员工,列出其部门号,姓名,工资,以及工资少于自己的人数 select a.deptno, a.ename, a.sal, ( select count(b.name) from emp b where b.sal < a.sal) as 人数 ) from emp where (select count(*) from emp b where b.sal < a.sal) > 5;
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)