【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语句使程序的流程直接转入标号表明的循环层次。


以上相当于这本书前两章的内容。







  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值