1.掌握 java
a)基本语法声明变量
基本类型
引用类型
创建方法:
public 返回值 方法名(){
}
创建一个类
public class 类名{
方法
}
如何调用java中的方法?
通过类的对象(自定义类型的 变量 进行调用)
public class StuInfoDao{
public int save(String name,String sex){
return 0;
}
}
//对象
StuInfoDao stuDao=new StuInfoDao();
int row=stuDao.save("宇文玥","男");
条件判读
1.if
2.switch:
switch(){//括号中的内容:1.7以前 只能是int short char 1.7 后 添加String
case 值: //case 后必须有break 如果没有 break 从满足条件的位置开始
break;//向下执行 直到遇见 break为止
default:
}
while(条件){
//更改条件
}
for(int i=0;i<10;i++){
}
String[] names={"aaa","bb","xx","dd"};
for(int i=0;i<names.length;i++){
String name=names[i];
}
//加强的for循环
for(String name:names){
}
int[] nums=new int[5];
集合:
List:线性集合
ArrayList
泛型:指明集合中添加数据的类型
List<String> list=new ArrayList<String>();
add() :把数据添加到集合中
size() :获取集合中元素的个数
get() :获取指定下标对应的数据
public class ListDemo_01 {
public static void main(String[] args) {
// java.util
List<String> list=new ArrayList<String>();
list.add("nihao");
list.add("zhangsan");
list.add("zhangsan");
for(String str : list){
System.out.println(str);
}
}
}
HashMap
Map<String,String> map=new HashMap<String,String>();
put(key,value):以键值对的形式把数据添加到集合中
如果key 重复 值会覆盖
get(key) :根据 key 获取 对应的 value
size() :集合中元素的个数
entrySet() :获取集合中所有的键值对组合
public class MapDemo_01 {
// alt + /
public static void main(String[] args) {
// 以下格式,是使用map 存放数据库 表中的一行数据,也就是 一个 java 对象
Map<String, String> map=new HashMap<String, String>();
map.put("stuno", "t1001");
map.put("stuname","小明");
map.put("stuage", "20");
// 最高境界 ctrl+c ctrl+v 把通用的功能封装为 jar 文件
// 掌握
for(Map.Entry<String, String> entry:map.entrySet()){
String key=entry.getKey();
String value=entry.getValue();
System.out.println(key+":"+value);
}
}
}
把map和list整到一起, 使用 List 存放 map
public class List_Map_dmeo {
// alt+/
// ctrl+shift+/
public static void main(String[] args) {
// 将来用于存放从数据库中获取的每一行数据
List<Map<String,String>> list=
new ArrayList<Map<String,String>>();
// 将来用于存放 一行数据中每一列对应的值
Map<String,String> item=new HashMap<String, String>();
item.put("stu_no", "1001");
item.put("stu_name", "王老吉");
item.put("stu_sex", "男"); //保密
list.add(item);
item=new HashMap<String, String>();
item.put("stu_no", "1031");
item.put("stu_name", "元芳");
item.put("stu_sex", "女");
list.add(item);
System.out.println("======================");
// for(int i=0;i<list.size();i++){
// Map<String,String> map=list.get(i);
// }
for(Map<String,String> map:list){
for(Map.Entry<String, String> entry:map.entrySet()){
String key=entry.getKey();
String value=entry.getValue();
System.out.print(value+"\t");
}
System.out.println();
}
}
}
java 开发工具
1)牛人用的:记事本
javac .class
2)Eclipse:免费
for javac只做 Javase
for jEE
for php
3)MyEclipse: 收费 2099
4)NetBeans:Oracle开发的 中文
jdk和jre:
jdk:Java开发工具包 包含 编译工具+运行环境+需要的基本类库
jre:java运行环境 包含 运行环境 + 类库
jre=jvm+类库
jdk= 编译工具+jre
使用 的工具
1.eclipse
配置:
字体大小
win-pre-Gen-Appr-Co&Font
编码格式
win-pre-Gen-Workspace-utf-8
配置jdk
3.tomcat
4.oracle
11G
【公司题】
计算器:一周
界面:在控制台中完成计算器功能
第一个数:12
第二个数:3
选择运算符:
1.加
2.减
3.乘
4.除
请选择:1
结果为:15
智障:System.out.println("第一个数:12");
一般:
package demo_0710_02;
public class JiSuanQi {
private int num1;
private int num2;
/**
* 构造方法:
* 一个类中出现 与类名相同,并且没有返回值的方法
* 用于创建该类的对象 给 new 使用
* 负责给类中的属性赋值
*/
public JiSuanQi(int num1,int num2){
this.num1=num1;
this.num2=num2;
}
public int add(){
int result=num1+num2;
return result;
}
public int sub(){
int result=num1-num2;
return result;
}
public int mul(){
int r=num1*num2;
return r;
}
}
package demo_0710_02;
import java.util.Scanner;
public class View {
public static void main(String[] args) {
// 控制台 获取 系统输入的数据
Scanner input=new Scanner(System.in);
System.out.println("请输入第一个数字:");
int num1=input.nextInt();
System.out.println("请输入第二个数字:");
int num2=input.nextInt();
JiSuanQi jsq=new JiSuanQi(num1, num2);
System.out.println("1.加");
System.out.println("2.减");
System.out.println("请选择:");
int i=input.nextInt();
int r=0;
switch(i){
case 1:
r=jsq.add();
break;
case 2:
r=jsq.sub();
break;
}
System.out.println("结果为:"+r);
}
}
高级:
package com.neu.factory;
import java.util.HashMap;
import java.util.Map;
import com.neu.service.AddJiSuanQi;
import com.neu.service.JiSuanQi;
import com.neu.service.SubJiSuanQi;
public class JiSuanQiFactory {
// static表示静态的。独立于类 被所有对象公有
// static 修饰的内容 可以通过类名直接访问
private static Map<String, JiSuanQi> map;
static{
map=new HashMap<String, JiSuanQi>();
map.put("1", new AddJiSuanQi());
map.put("2", new SubJiSuanQi());
}
public static JiSuanQi getJiSuanQi(String type){
JiSuanQi jsq=map.get(type);
return jsq;
}
}
package com.neu.service;
public class AddJiSuanQi extends JiSuanQi {
@Override
public int result() {
int r=getNum1()+getNum2();
return r;
}
}
package com.neu.service;
public abstract class JiSuanQi {
// 属性封装
private int num1;
private int num2;//ctrl+shift+x y
public int getNum1() {
return num1;
}
public void setNum1(int num1) {
this.num1 = num1;
}
public int getNum2() {
return num2;
}
public void setNum2(int num2) {
this.num2 = num2;
}
public abstract int result();
}
package com.neu.service;
public class SubJiSuanQi extends JiSuanQi {
@Override
public int result() {
int r=getNum1()-getNum2();
return r;
}
}
package view;
import java.util.Scanner;
import com.neu.factory.JiSuanQiFactory;
import com.neu.service.JiSuanQi;
public class View {
// alt + /
public static void main(String[] args) {
Scanner input=new Scanner(System.in);
System.out.print("第一个数:");
int num1=input.nextInt();
System.out.print("第二个数:");
int num2=input.nextInt();
System.out.println("1.加");
System.out.println("2.减");
System.out.print("请选择:");
String type=input.next();
JiSuanQi jsq=JiSuanQiFactory.getJiSuanQi(type);
jsq.setNum1(num1);
jsq.setNum2(num2);
int r=jsq.result();
System.out.println(r);
}
}
数据库 中的视图
数据编程-----职业 数据库开发 极少
时刻 清醒
机灵
脑筋测试
移动火柴棒
是否仔细
喝汽水:
你有10元 1 元一瓶 两个空瓶 换一瓶
你最多能喝几瓶
喝的数 空瓶
10 10
5 5 1
2 2
1 1
1 1
借 1 1
1.现有十二个小球,其中有一个与其他重量不同,从外观看完全一样
给你一个天平 要求三次机会 找个 该小球
java 语言的特点:
面向对象的
封装
继承
多态
实现
要求:在不改变现有类的情况下 添加或修改程序中的功能
计算器 分为 加法计算器 都有计算的能力,具体的能力不同
减法计算器
乘法计算器
除法计算器
public class AddCal{
private int num1;
private int num2;
public int result(){
return 0;
}
}
public class SubCal{
private int num1;
private int num2;
public int result(){
return 0;
}
}
他们之间 是否满足 is a 的关系
他们与第三者 满足 is a 的关系
加法计算器 is a 计算器
减法计算器 is a 计算器
public abstract class JiSuanQi{
private int num1;
private int num2;
//setter,getter
public abstract int result();
}
public class AddJiSuanQi extends JiSuanQi{
public int result(){
int r=getNum1()+getNum2();
return r;
}
}
页面中view如下
public static void main(String[] args){
int num1=12;
int num2=23;
//选择操作的类型
int i=input.nextInt();
//多态
JiSuanQi jsq=null;
switch(i){
case 1:
jsq=new AddJiSuanQi();
break;
case 2:
jsq=new SubJiSuanQi();
break;
}
jsq.setNum1(num1);
jsq.setNum2(num2);
int r=jsq.result();
}
1.java 常用的修饰符:
a)访问修饰符
private 默认 protected public
b)其他修饰符
static:静态
修改属性,其值 被所有对象公有
修饰方法
修改代码块:在类加载的时候自动执行
package demo_0710_4;
public class Student {
public String name;
public Student(){
System.out.println("构造方法执行");
}
static{
//在链接数据库的时候 完成 驱动的加载
System.out.println("static代码快执行");
}
}
jdbc:
加载驱动
Class.forName("com.mysql.jdbc.Driver");
static{
Class.forName("com.mysql.jdbc.Driver");
}
final:表示终态的
修饰 类 :该类不能被继承
修饰方法:该方法不能被重写
修改变量:变量的值不能改变
全局变量
局部变量
方法的参数
package demo_0710_4;
public class Main {
// 30%
public static void main(String[] args) {
// TODO Auto-generated method stub
final Student stu=new Student();
stu.name="张三";
// 李雷关
}
}
abstract:表示抽象的
可以修饰类:该类不能被 new
方法:该方法 不能有方法体
2.java规范:
a)命名规范:
必须以字母、_、$开头
可以包含数字、字母、_、$的任意组合
不能是关键字,特殊字母
b)书写规范:
类名:首字母必须大写,其后每一个单词的首字母都大写
帕斯卡命名法则
方法名:首字母小写,其后每一个单词的首字母都大写
驼峰法则
变量名:驼峰法则
String stuName;
CMMI5---
看到变量名,就知道变量的类型
String stuNameString;
int ageInt;
匈牙利法则
包名:package 全部都小写
项目名: 全都小写
注释规范:
每一个类,每一个方法 都要添加文档注释
/**
* 对类说明
*/
/*
* 多行注释,临时注释 ctrl+shift+/ ctrl+shift+\
*/
//单行注释 ctrl+/
3.异常处理:意料不到的问题,处理完异常后保证我们的代码继续执行
try:负责监视 可能有异常的代码
catch:捕获异常信息,进行相应的记录
finally:负责完成 资源的释放,不管是否有异常,都会执行
用数据库资源的关闭
throws:声明异常,该方法有问题是用的时候需要处理
throw :向外引发
java处理异常的三种情况:
1.代码没有发生异常:先执行 try---finally---后面的内容
2.try中的代码发生异常了,catch能够捕获并处理
try---catch--finally--后面的代码
3.发生异常 了 catch 没有能力处理,执行完finally 后程序终止
建议大家在catch中尽量使用 Exception 进行异常信息的捕获
4.异常的结构
Throwable
Error Exception(异常,必须处理)
编译时异常:不处理程序无法运行
SQLException
ClassNotFoundExcetion
RuntimeException:运行时异常
用的最多
NullPointerException
NullPointerException:我们认为通过严格的判断可以把异常去掉
package demo_0710_4;
public class Exception_demo {
public static void test(int i){
try{
int n=12/i;
System.out.println("try");
}catch(NullPointerException ex){
System.out.println("catch");
}finally{
System.out.println("释放资源");
}
System.out.println("执行完毕");
}
public static void main(String[] args) {
// TODO Auto-generated method stub
test(4);
}
}
5.数据库 CRUD(增删改查)