栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

1月30日报

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

1月30日报

封装性与隐藏

让类的属性私有化(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; 
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/719507.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号