2021数据库课程设计培训笔记:【JAVA】部分

基础练习

注意:java类名首字母必须大写、驼峰式命名,必须与关键字区分。所以以后看到首字母大写的一定是一个类。

1.向控制台输出一个字符串

//类文件名前有*符号,示意未保存
public class HelloWorld {

	//java程序中一定要有且只有一个main方法
	//main方法的标准写法(程序的主入口)
	public static void main(String[] args)
	{
		  //args数组是运行程序时的参数列表,参数是字符串,可以有多个,所以必须声明为String数组
		System.out.println("Hello World");
		  //"syso"+自动填充快捷键:换行打印
		  //println的意思是换行打印,是java语言中的命令,print命令则不换行
		System.out.println("Hello World" + "!");
		  //输出时可以用加号“+”拼接
	}
}

注意:java中也是逐行编译的

2.输入练习:用Scanner获取键盘输入

package myNote;

import java.util.Scanner;//引包,不在本包下的类使用时需要引包,用关键字import

public class InAndOut {

	public static void main(String[] args)
	{
		//Scanner:扫描控制台输入的信息
		Scanner s =new Scanner(System.in);//创建Scanner对象
		int age = s.nextInt();//获取控制台输入的数字
		System.out.println(age);
	}
}

注意:Scanner对象需要引包,可以先输入代码行,会出现波浪线下滑提示,鼠标移至出错位置,根据提示可以自动引包。如下图。
在这里插入图片描述

3. 面向对象的封装:将功能类和主函数分别写在两个类中

3.1 手动封装

功能类举例:

public class Package {

	//get方法和set方法封装保护成员
	private String sudentName;
	private String sudentGender;
	//set方法:为成员设置属性
	public void setGender(String gender)
	{
		sudentGender=gender;
	}
	public void setName(String sudentName)
	{
		this.sudentName=sudentName;
		//java中对于同名变量有就近原则,需要加this指向本类内存
	}
	//get方法:输出成员属性
	public void getName()
	{
		System.out.println("我的名字是"+sudentName);
	}
}

主函数类举例:

public class MainPackage {

	public static void main(String[] args)
	{
		//在主函数类的main方法中声明工具类
		ToolPackage tool = new ToolPackage();
		tool.setName("Dangerous");
		tool.getName();
	}
}

运行结果展示:
在这里插入图片描述

3.2 自动封装
3.2.1 setter方法和getter方法

系统自带了setter方法和getter方法对选中的数据成员完成set赋值和get取值,步骤如下:
1.进入方法入口
在这里插入图片描述
2.选择需要操作的数据成员
在这里插入图片描述
3.选中的数据成员已经自动被完成set和get
在这里插入图片描述

3.2.2 to string方法:对所有选中的数据成员用一个字符串完成输出

1.进入方法入口
在这里插入图片描述
2.选中要操作的数据成员

在这里插入图片描述
3.选中的数据成员以某种格式被拼接到一个字符串中作为返回值输出
在这里插入图片描述

3.2.3 初始化构造方法

可以对数据成员进行快捷的初始化操作
1.进入入口
在这里插入图片描述
2.选中要操作的数据成员(忘记截图了)
3.被选中的成员已经被写好了构造函数
在这里插入图片描述

4. 面向对象的交互

4.1 工具类交互举例
package myNote;

import java.util.Scanner;

//写一个简单的用户登录系统
public class Tools {

	//欢迎页面
	public static void welcome()
	{
		System.out.println("welcome!");
		System.out.println("输入1:登陆");
		System.out.println("输入2:注册");
	}
	//登陆交互
	public void control(int order)//输入操作指令
	{
		Scanner scan = new Scanner (System.in);
		switch(order)
		{
		case 1:
			System.out.println("请输入用户名和密码");
			System.out.println("输入用户名:");
			String name = scan.next();//获取字符串用.next()
			System.out.println("输入密码:");
			String pwd = scan.next();
			if(login(name,pwd))//用户名和密码均匹配
			{
				System.out.println("登陆成功");
			}
			else
			{
				System.out.println("用户名或密码错误");
			}
			break;
		case 2://此处省略不写了
			System.out.println("请输入注册信息");
			break;
		default:
			System.out.println("输入操作无效");
			break;
		}
	}
	//用户名和密码验证方法
	public boolean login(String name, String pwd)
	{
		//字符串是一个类,不能用if判断相等,要用.equals()方法
		if(name.equals("Dangerous")&&pwd.equals("666666"))
		{
			return true;
		}
		return false;
	}
}
4.2 主函数类举例
package myNote;

import java.util.Scanner;

public class MainDemo {

	public static void main(String[] args)
	{
		Tools t = new Tools();
		Scanner s = new Scanner(System.in);
		t.welcome();
		t.control(s.nextInt());//输入int类型的方法为.nextInt()
	}
}

运行结果:
在这里插入图片描述
在这里插入图片描述

5. 继承

练习:创建Father类为父类,创建一个子类。其中父类属性2个,子类特有的属性1个;父类1个标准动作,子类加一个特有的行为。

5.1 父类部分
package myNote;

public class Father {
	//父类属性
	protected String name;
	protected int age;//private修饰的属性和方法不能被子类继承
	//get方法和set方法
	public void set(String name, int age)
	{
		this.name = name;
		this.age = age;
	}
	public void get()
	{
		System.out.println("my name is : " + name);
		System.out.println("I am " + age + " years old.");
	}
	//父类标准动作
	public void love()
	{
		System.out.println("I love my children.");
	}
}

5.2 子类部分
package myNote;
//extends为继承关键字,需要在子类中写明
public class Son extends Father {

	//子类特有属性
	private int mathScore;
	public void setScore(int score)
	{
		mathScore = score;
	}
	public int getScore()
	{
		return mathScore;
	}
	//子类特有行为:子类可以创建父类没有的方法
	public void loveToo()
	{
		System.out.println("I love my dad too.");
	}
	//子类可以重写父类的方法
	public void love()
	{
		System.out.println("My dad love me.");
	}
	//子类可以调用父类的方法
	public void introduce()
	{
		get();//调用父类
		System.out.println("my score of math is : " + mathScore);
	}
}

5.3 主函数类部分
package myNote;

public class MainDemo {

	public static void main(String[] args)
	{
		Father f = new Father();
		f.set("胡英俊", 32);
		f.get();
		f.love();
		Son s = new Son();
		s.set("胡图图", 3);
		s.setScore(100);
		s.introduce();
		s.love();
		s.loveToo();
	}
}

运行结果:
在这里插入图片描述

注意:一个子类只能继承一个父类,一个父类可以被多个子类继承(其实还有别的继承方式,但是为了便于学习,这里不提)

6. 接口

6.1 定义接口

定义规范:接口中的所有方法都是抽象方法,不需要方法体。接口本身没有实例对象,只能new一个接口的实现类。实现接口的实现类必须重写接口的抽象方法

package myNote;

public interface Fruit {
	//interface:说明接口的关键字
	public void grow();//声明抽象方法,没有方法体
}
6.2 实现接口
package myNote;
//用implements关键字指定需要实现的接口
public class Banana implements Fruit {

	@Override
	public void grow()
	{
		System.out.println("香蕉长在树上");
		
	}

}

7.多态:同一种事物的不同形态

7.1 用接口实现多态举例

声明接口:

package myNote;

public interface Fruit {
	//interface:说明接口的关键字
	public void grow();//声明抽象方法,没有方法体
}

声明接口的实现类:
(1)实现类1

package myNote;

public class Banana implements Fruit {

	@Override
	public void grow()
	{
		System.out.println("香蕉长在树上");
		
	}

}

(2)实现类2

package myNote;

public class Grape implements Fruit{

	@Override
	public void grow() 
	{
		System.out.println("葡萄长在藤上");
		
	}

}

主函数类:

package myNote;

public class MainDemo {

	public static void main(String[] args)
	{
		Fruit a = new Banana();
		a.grow();
		a = new Grape();
		a.grow();
	}
}

编译结果:
在这里插入图片描述

项目问题总结

这个部分是我在写项目的时候总结的一些问题,如果涉及到有的步骤看不懂,需要把jsp部分的笔记了解一下。

1.Data类

在我设计页面填写某人的信息时,出生日期是一个不太容易实现的问题。
表单中的data型数据传给后台仍是String,但因为数据库中设置的类型是日期,我要传回给数据库的必须是JAVA的Data类。那么就涉及到String类和Data类的转化

首先要知道,适用于我项目Data类的结构是Data(int,int,int),我们需要将String转化成整型的年、月、日。
由于字符串比较长,我们先用Long.parseLong(String s)将字符串转化成长整型,然后可以通过简单的方法(无非就是减法、除法、取余操作一波,这里不细说了,很简单),分别取其前4位、5-6位、7-8位,得到三个整型分别为年、月、日。
但是不是这么容易就结束了,Data类中:第一个int是当前年份-1900,第二个int是当前月份-1,第三个int是当前日期。通过查资料我大概了解了一下,java中第一个int表示距1900年过了多长时间,月份也是有另外的意思,不仅仅是表示年月日,所以我们要进行一定的转换。比如今天是2021年8月18日,那么我的Data类应该这样写:

Data birth = new Data(121,7,18);

本文结束啦,培训内容比较少,但是都是主要的基础知识,写数据库差不多足够了
之后关于java系统的学习是在学校,不确定会不会再写电子笔记了
老样子【新手笔记 欢迎指正】

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值