上个月27日安装好了Java8和Tomcat9,就一直没有时间接触Java,时间一晃就快一个月过去了。
今天必须开始了,不然总这样拖着就慢慢又放弃了。
1、先体验一下文本编辑和编译运行
新建一个文件:JavaDemo.java,在记事本里写下代码:
public class JavaDemo {
public static void main(String[] args) {
System.out.println("学习 Java !");
}
}
保存,编译,运行:
G:\Java>javac JavaDemo.java
G:\Java>java JavaDemo
瀛︿範 Java !
G:\Java>
乱码,查资料有两种解决办法。
① 在记事本里另存时选择ANSI格式;
② 编译时加编码,如下:
G:\Java>javac -encoding utf-8 javaDemo.java
G:\Java>java JavaDemo
学习 Java !
2、依照Java语法写一个工厂模式文件
Customer.java代码:
class Factory {
public BaseObj CreateFactory(String SType){
switch(SType){
case "A":
return new ProductA("A类型的产品");
case "B":
return new ProductB("B类型的产品");
default:
break;
}
return null;
}
}
abstract class BaseObj{
protected String ProductName;
public void SelfIntroduction(){
System.out.println("我是"+ this.ProductName);
}
}
class ProductA extends BaseObj{
public ProductA(String Name){
super.ProductName=Name;
}
}
class ProductB extends BaseObj{
public ProductB(String Name){
super.ProductName=Name;
}
}
public class Customer{
public static void main(String[] args) {
Factory F=new Factory();
BaseObj A=F.CreateFactory("A");
BaseObj B=F.CreateFactory("B");
A.SelfIntroduction();
B.SelfIntroduction();
}
}
保存、编译、运行:
G:\Java>javac Customer.java
G:\Java>java Customer
我是A类型的产品
我是B类型的产品
G:\Java>
3、用Java写设计模式的访问者模式
class DesignModeVistor {
public static void main(String[] args) {
System.out.println("系统执行:");
Intergrator II = new Intergrator();
II.Run();
System.out.println("系统接收访问者1的指令:");
Visitor V1 = new Visitor1();
II.Accept(V1);
II.Run();
System.out.println("系统接收访问者2的指令:");
Visitor V2 = new Visitor2();
II.Accept(V2);
II.Run();
}
}
//定义受访者的抽象类
abstract class Interviewee{
protected String CommandStr="";//指令
public void UpdateCommand(String CommStr){
this.CommandStr=CommStr;
}
public void Run(){
System.out.println("执行命令:" + this.CommandStr);
}
public abstract void Accept(Visitor V);
}
//受访问者A
class IntervieweeA extends Interviewee {
public IntervieweeA(String CommStr){
super.CommandStr=CommStr;
}
public void Accept(Visitor V){
V.VisitIntervieweeA(this);
}
}
class IntervieweeB extends Interviewee {
public IntervieweeB(String CommStr){
super.CommandStr=CommStr;
}
public void Accept(Visitor V){
V.VisitIntervieweeB(this);
}
}
//集成者:集成受访问者A和受访问者B
class Intergrator{
private IntervieweeA IA = new IntervieweeA("");
private IntervieweeB IB = new IntervieweeB("");
public Intergrator(){
IA.UpdateCommand("执行初始化命令A");
IB.UpdateCommand("执行初始化命令B");
}
public void Run(){
IA.Run();
IB.Run();
}
public void Accept(Visitor V){
IA.Accept(V);
IB.Accept(V);
}
}
interface Visitor{
public void VisitIntervieweeA(IntervieweeA IA);
public void VisitIntervieweeB(IntervieweeB IB);
}
class Visitor1 implements Visitor{
public void VisitIntervieweeA(IntervieweeA IA){
IA.UpdateCommand("访问者1的新命令A");
}
public void VisitIntervieweeB(IntervieweeB IB){
IB.UpdateCommand("访问者1的新命令B");
}
}
class Visitor2 implements Visitor
{
public void VisitIntervieweeA(IntervieweeA IA){
IA.UpdateCommand("访问者2的新命令A");
}
public void VisitIntervieweeB(IntervieweeB IB){
IB.UpdateCommand("访问者2的新命令B");
}
}
输出:
G:\Java>javac DesignModeVistor.java
G:\Java>java DesignModeVistor
系统执行:
执行命令:执行初始化命令A
执行命令:执行初始化命令B
系统接收访问者1的指令:
执行命令:访问者1的新命令A
执行命令:访问者1的新命令B
系统接收访问者2的指令:
执行命令:访问者2的新命令A
执行命令:访问者2的新命令B
4、使用IntelliJ IDEA Community Edition进行编辑(2022.1.1版本)
连接数据库,这里有MS SQL Server2014数据库,里面有数据。
成功了,不过Idea操作有点麻烦,后面要熟练一下。
|