东软JavaWeb实训记-DAY1-java语法、集合(List&Map)

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);
		}
	}
}


Map<String,String>:键值对的集合
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


2.jdk  1.7 
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(增删改查)




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值