JAVA学习记录(1~22)
文章目录
本篇包括JAVA的基础了解、eclipse和jdk的安装及环境变量的设置、命令行操作、第一个JAVA程序及台球小游戏的初探
三种版本:
JavaSE:定位在个人计算机的应用开发。应用一般。
JavaEE:企业版,定位于服务器端的应用。应用最广。
JavaME:微型版,定位在消费性电子产品领域。几乎已消亡。
关系:
Java的核心优势:跨平台/可移植性
特性:可移植性、安全性、面向对象、简单性、高性能、分布式、多线程、健壮性
运行机制:
在官网eclipse.org下载最新的eclipse,在java.oracle.com下载jdk并配置环境变量
如果只下载jre,可以不配置环境变量。
**环境变量的配置:**在环境变量下新建一个JAVA_HOME,对应路径为jdk下各种文件的安装目录,如:C:\Program Files\Java\jdk1.8.0_191
然后在path环境变量下添加新的变量,新变量为jdk下面bin文件夹里面文件的路径,如C:\Program Files\Java\jdk1.8.0_191\bin
注意:新建的环境变量是系统变量而非用户变量。
配置成功测试:命令行输入cmd, 打开后输入 java -version 若显示版本号,则配置成功
用命令行解释并运行java程序:
- 用记事本写一个程序:
public class Welcome{
public static void mian(String[] args){
System.out.println("我是尚学堂高淇,很高兴认识各位!");
}
}
- 把txt后缀名改成java,文件名为Welcome,放在E盘MyCode文件夹下面。
- 打开命令行(开始-运行-cmd命令),输入命令e:,回车找到E盘,输入命令cd MyCode,回车转到文件夹,输入命令javac Welcome.java
- 观察MyCode文件夹下面多了一个文件:Welcome.class,这就是java程序的解释文件
- 输入命令 java Welcome,得到运行编译的结果如下图:
- 如果解释出现错误,则将java源代码进行更改,如果运行编译出现错误,则修改源代码后要重新使用javac生成解释文件,然后再用java命令运行解释文件
扩展:
dir命令可以查看目录下所有文件,如E:\MyCode>dir
结果如下:
第一个java程序的详细讲解:
public class Welcome{
// public称作访问修饰符,用于控制程序的其他部分对这段代码的访问级别
//class是类,所有代码必须在类里面
/*一个源文件可包含多个类,但只能声明一个public的类,其他类不限,如果源文件包含public的类,
则源文件名必须和public定义的类名相同,且以.java为扩展名
*/
/*编译后的源文件得到对应的字节码文件,扩展名.class,编译器为每个类生成独立的字节码文件
且将字节码文件自动命名为对应类的名字*/
public static void main(String[] args){
//main方法是java应用程序的入口方法,它有固定的书写格式:public static void main(String[] args){...}
//方法后面的一对花括号表示方法体,类后面的一对花括号表示类体
System.out.println("我是尚学堂高淇,很高兴认识各位!");
}
}
016 常见的DOS命令
操作实验:
打开DOS窗口:开始-运行-cmd命令-确定
找到e盘:e: 找到下属文件夹:cd MyCode
dir:查看文件夹内容 上下键: cls:清除屏幕
自动补齐命令:输入到一半时可以猜你想打的命令,自动补齐,但不一定补对。
017 、018、019、020、021
常用编程软件:
- 文本编辑器: 记事本、Notepad++、UltraEdit、EditPlus
- 集成开发环境(IDE):eclipse、IntelliJ IDE、NetBeans
eclipse的使用:
左边那一块称为包视图,在包视图处可以直接New一个java project,取一个project name,建立项目。
建立后的项目分两块,一块是用来存放调用的jar包(打包的class文件,即字节码文件),另一块(src)存放源码java文件。java文件被解释为class文件,这些class文件存放在隐藏的bin目录内。
选中项目右键最后一个栏目可以查看此项目的属性,查看存放的工作台的位置并直接打开。
注意:先新建project,再在src下面建包package,包下面建class。平时写java程序可以直接在src下面建class,即一个java文件,此时包是default的。
注: 如果要重新设置工作空间,在windlows-preference-general-setupAndsetdown-workspace下面,打勾,重新启动eclipse,重新选工作空间,再进入移除原来的工作空间。工作空间可以不止一个,file-switch workspace可以切换工作空间,为了简便,我只设立一个工作空间,在E盘的MyCode文件夹下面。
注:字体大小的改变: 首先打开eclipse中,按下面的方法即可菜单项:window ->preferences -> general -> appearance -> colors and fonts,然后在右边看到一个编辑区:选择 java editor text fonts 项,点“change”按钮即可进行相关设置。
软件默认的字体为Courier New。如小心改错字体,以供参考!
注:ctrl+F11为运行的快捷键
022 开发兴趣:半小时零基础开发桌球小游戏项目
目标:找敲代码的感觉,不注重对代码的理解。学到后面之后可以回顾这里来理解。
要求:学会调试代码;了解java代码的基本结构;产生对代码的兴趣。
首先建立一个java project,取名“桌游”,然后在项目处建立new一个folder(相当于普通文件夹),存放图片文件。(正常应该在src处new一个folder,这里简化方便理解)
下面的代码由于初入门,力求最简化,而不是最优。
然后从源码里面找到桌和球两个图片,下载并copy到images文件夹***意可以在eclipse中的images文件夹处直接粘贴。
在src下面创建一个类名字为BallGame,在类中写程序。
按照版本迭代的方式来完成代码:
版本1:目标:出现窗口。代码: 运行结果:
版本2:目标:加载两个图片。代码: 运行结果:
版本3:目标:使小球图片水平方向动起来并实现边界检测,实现动画。(革命性的一步)
代码: 运行结果:
版本4:目标:台球沿任意角度动 代码: 运行结果:
package 半小时零基础开发小游戏;
//在BallGame的基础上改进,使得小球在某个初始角度不断回弹
import java.awt.*;
import javax.swing.*;
public class BallGame2 extends JFrame {
Image ball = Toolkit.getDefaultToolkit().getImage("images/ball.png");
Image desk = Toolkit.getDefaultToolkit().getImage("images/desk.jpg");
double x = 100;//小球在窗口的横坐标
double y = 100;//小球在窗口的纵坐标
double degree = 3.14/3; //角度,用弧度表示,初始为60度
//画窗口的方法
public void paint(Graphics g) {
System.out.println("窗口被画了一次!");
g.drawImage(desk,0,0,null); //桌面在窗口的位置
g.drawImage(ball,(int)x,(int)y,null); //球在窗口的位置
x = x + 15*Math.cos(degree); //这里改用15,让速度更快一些 15是画一次窗口两个小球之间的距离
y = y + 15*Math.sin(degree);
//上下边界的回弹
if(y>500 - 40 - 30 || y < 0 + 40 + 40) { //桌子高度500 边框宽度40 球的直径30 最后一个是标题栏高度为40
degree = -degree;
}
//左右边界的回弹
if(x < 0 + 40 || x>856 - 40 - 30) {
degree = 3.14 - degree; //角度变为了120度,可以画图来理解这里的变化
}
}
/*如果做真实台球游戏,可以考虑再加入一个球杆的变量和图片,并设一个可以变的角度变量,
* 且构造一个力度变量来对应球的不同初始速度,并且给球一个变量使得速度衰减,最后衰减至零时,
小球停下来,如何使小球停下来是之后要考虑的问题
这个游戏掌握之后,可以类比飞机游戏,背景换成蓝天,球换成飞机即可
也可以换成赛车游戏、坦克大战等,路径类游戏均可用到
*/
//窗口加载
void launchFrame(){
setSize(856,500); //窗口大小 宽和高
setLocation(50,50); //位置
setVisible(true); //可见性
//重画窗口,每秒画25次
while(true) {
repaint();
try {
Thread.sleep(40); //40ms,1s = 1000ms,即每秒约画25次窗口,相当与每秒25帧
}catch(Exception e) {
e.printStackTrace();
}
}
}
public static void main(String[] args) {
//main方法是程序执行的入口
System.out.println("我是阿瓜,这个程序让大家对编程感兴趣,寓教于乐!");
BallGame2 game = new BallGame2();
game.launchFrame();
}
}
上一篇: java小白学习记录6:分支
推荐阅读
-
【Java学习】多线程1
-
Cocos2d游戏开发学习记录——1.Surface、SurfaceView、SurfaceHolder实现简单的游戏demo
-
Java学习记录:纠错Junit单元测试遇到的initializationerror:method initializationerror not found
-
6-22日学习记录
-
java学习之路_篇超好的文章第1/3页
-
《Java程序设计》第1周学习总结
-
第一次记录Bootstrap table学习笔记(1)
-
1.java学习路线
-
MVC5项目转.Net Core 2.2学习与填坑记录(1)
-
Java基础部分学习day1_HelloWord