【Java学习笔记】1:Java语言基础,
【Java学习笔记】1:Java语言基础,
今天是2017.3.21日,考试只剩一门毛概,所以开始系统的学Java了,用的是吉林大学出版社的《Java程序设计》,加油。下面的多数代码也是临摹自这本书里的,这本书讲的挺好的。还借了一本《Java从入门到精通》感觉也很不错,就是有点厚有点老。
*JavaApplication 示例
import java.awt.*;
import java.awt.event.*;
public class AppGraph {
public static void main(String args[]){
new FrameInOut();
}
}
class FrameInOut extends Frame implements ActionListener{
Label prompt;
TextField input,output;
Button btn;
FrameInOut(){
super("图形界面的JavaApplication程序");
prompt=new Label("请输入你的名字");
input=new TextField(6);
output=new TextField(20);
btn=new Button("关闭");
setLayout(new FlowLayout());
add (prompt);
add (input);
add (output);
add (btn);
input.addActionListener(this);
btn.addActionListener(this);
setSize(300,200);
show();//过时注解?这里编译时被划掉,没太懂是什么意思
}
public void actionPerformed(ActionEvent e){
if(e.getSource()==input)
output.setText(input.getText()+",欢迎你");
else{
dispose();
System.exit(0);
}
}
}
Java程序可以分为Java Application和Java Applet两种,上面的就是Java Application的一个例子,就是指我们一般的完整的Java应用程序,需要Java的解释器来解释运行。一个Java应用程序必须有且只有一个main方法,该类为主类。main方法是程序的入口,必须被说明成public static void型并具有命令行参数String args[]。
*JavaApplet示例
import java.awt.Graphics;
import java.applet.Applet;
public class MyJavaApplet extends Applet{
public void paint(Graphics g){
g.drawString("Hello,Java Applet World",10,20);
}
}
Java Applet(又称Java小程序)是嵌入在HTML编写的Web页面中的非独立的程序,由Web浏览器所包含的的Java解释器来解释运行。实际上Java Applet已经很少使用了。
包(package)是Java系统用来管理类和接口的工具,功能作用和来源相关的类通常放在同一个包中。当需要用到系统类时需要用import关键字知名它们所在的包名(加包)。这有点像C/C++里面的头文件。
*使用各种类型的变量
public class UseVariable {
public static void main(String args[]){
boolean b=true;
short si=128;
int i=-99;
long l=123456789L;
char ch='J';
char chc='中';
float f=3.1415926F;
double d=-1.04E-5;
String s="你好!";
System.out.println("布尔型 b=" +b);
System.out.println("短整型 si=" +si);
System.out.println("整型 i=" +i);
System.out.println("长整型 l=" +l);
System.out.println("字符型 ch=" +ch);
System.out.println("字符型 chac=" +chc);
System.out.println("浮点型 f=" +f);
System.out.println("双精度型 d=" +d);
System.out.println("字符型(对象) s=" +s);
}
}
*从键盘输入一个整数
import java.io.*;
public class GetNum {
public static void main(String[] args) {
int i=0;
String s;
try{
System.out.print("请输入一个整数");
BufferedReader br=
new BufferedReader(new InputStreamReader(System.in));
s=br.readLine();
i=Integer.parseInt(s);
}catch(IOException e){}
System.out.print("你输入了数字:"+i);
System.out.print("\t,对吗?");
}
}
该程序接受从键盘输入的一个字符串,然后把它转化成为整形数据并输出。除了可以利用Integer.parseInt()将一个数字串转化成整数,也可以利用Double.parseDouble()将一个数字串转换成双精度数。
*利用Scanner类获取基本数据类型数据
import java.util.*;
public class GetData {
public static void main(String[] args) {
int i=0;
float f=0.0f;
double d=0.0;
Scanner in=new Scanner(System.in);
System.out.print("请输入一个整数:");
i=in.nextInt();
System.out.print("请输入一个单精度数:");
f=in.nextFloat();
System.out.print("请输入一个双精度数:");
d=in.nextDouble();
System.out.println("你输入的整数为:"+i);
System.out.println("你输入的单精度数为:"+f);
System.out.println("你输入的双精度数为:"+d);
}
}
利用这个类可以很方便从键盘输入各种基本数据类型的数据。
*算术运算
import java.util.*;
import java.awt.*;
import java.awt.event.*;
public class Arithmetic {
public static void main(String[] args) {
int a=0,b=1;
Scanner in=new Scanner(System.in);
System.out.print("请输入整数a:");
a=in.nextInt();
System.out.print("请输入整数b:");
b=in.nextInt();
System.out.println(a+"+"+b+"="+(a+b));
System.out.println(a+"/"+b+"="+(a/b));
System.out.println(a+"*"+b+"="+(a*b));
System.out.println(a+"-"+b+"="+(a-b));
System.out.println(a+"%"+b+"="+(a%b));
}
}
注意变量和字符串之间要用+连接,这和C/C++不同。
*关系运算
import java.util.*;
public class Relation {
public static void main(String[] args) {
int a=0, b=1;
Scanner in=new Scanner(System.in);
System.out.print("请输入整数a:");
a=in.nextInt();
System.out.print("请输入整数b:");
b=in.nextInt();
System.out.println(a+">"+b+"="+(a>b));
System.out.println(a+"<"+b+"="+(a<b));
System.out.println(a+">="+b+"="+(a>=b);
System.out.println(a+"<="+b+"="+(a<=b);
System.out.println(a+"=="+b+"="+(a==b);
System.out.println(a+"!="+b+"="+(a!=b);
}
}
*逻辑运算
import java.util.*;
public class Logical {
public static void main(String[] args) {
boolean a,b;
Scanner in=new Scanner(System.in);
System.out.println("请输入布尔值a:");
a=in.nextBoolean();
System.out.println("请输入布尔值b:");
b=in.nextBoolean();
System.out.println(a+"&"+b+"="+(a&b));
System.out.println(a+"&&"+b+"="+(a&&b);
System.out.println(a+"|"+b+"="+(a|b));
System.out.println(a+"||"+b+"="+(a||b);
System.out.println(a+"^"+b+"="+(a^b));
System.out.println("!"+b+"="+(!b));
}
}
注意&为非简洁与,即使其左边表达式为假时,右边表达式仍要进行判断;而|为非简洁或,即使其左边表达式为真时,右边表达式仍要进行判断。
另外,java中的位运算、赋值运算、三目运算与C/C++一样,这里不再重复记录。对象运算符instanceof用来测定一个对象是否属于某一个指定类或其子类的实例,如果是则返回true,否则返回false。例如boolean b=MyObject instanceof TextField;
*试着在SHUOJ上用JAVA做了一道简单的题(1099)
import java.util.*;
import java.math.*;
public class xbh {
public static void main(String[] args) {
int i,j,k,num;
for(num=100;num<1000;num++){
i=num/100;
j=num%100/10;
k=num%10;
if(Math.pow(i, 3)+Math.pow(j, 3)+Math.pow(k, 3)==num)
System.out.println(num);
}
}
}
注意在OJ上提交时,主类名需改为Main。
*showCharValue 该例传达了捕获异常和字符读入
import java.io.*;
public class showCharValue {
public static void main(String[] args) {
char ch;
try{
System.out.println("请输入一个字符,以'#'结束");
do{
ch=(char)System.in.read();
System.out.println("字符"+ch+"的值为"+(int)ch);
System.in.skip(2);//跳过回车
}while(ch!='#');
}
catch(IOException e){
System.err.println(e.toString());
}
}
}
*寻找100以内素数 该例传达了有标号的跳转语句
import java.util.*;
public class FindSu {
public static void main(String[] args) {
First_LOOP:
for(int i=2;i<100;i++)
{
for(int j=2;j<i;j++)
if(i%j==0)
continue First_LOOP;
System.out.println(i);
}
}
}
带标号的continue语句使程序的流程直接转入标号表明的循环层次。
以上相当于这本书前两章的内容。
相关文章
- 暂无相关文章
用户点评