培养良好的编程风格:
1、机械语言发展历史:注意缩进、成对编程、见名知意,Caml规范;
机械语言——汇编语言 ——高级语言 ——面向过程
—— 面向对象
2、JDK&JRE&JVM
JDK:Java开发工具包,包含JRE(Java程序运行环境);
JVM:JVMJava虚拟机。
3、JavaDOS命令执行和Java程序运行过程:
*.java Javac.exe > *.class Java.exe > Java虚拟机(JVM)
1)、编译Java文件,把源文件编译成class字节码文件。
2)、运行class文件。
HelloWorld程序
public class HelloWorld{
public static void main(String [] args){ System.out.println("Hello World!");}
常用的DOS命令
- * a: 打开Dos控制台
- * win+r--cmd--回车
- * b: 常用dos命令
- * cd.. : 退回到上一级目录
- * cd\ : 退回到根目录
- * cd tools: 进入tools文件夹
- * d: : 回车盘符切换
- * cd d:\234 :进入d盘的234文件夹,再切换盘符(d:)才能进入d:\234
- * dir : 列出当前目录下的文件以及文件夹
- * cls : 清除屏幕
- * ipconfig: 查看本机的相关网络配置
- * c: dos控制台运行记事本程序
- * D:\>C:\windows\notepad.exe
- * 还可以省略“.exe”后缀,例如:D:\>C:\windows\notepad
4、Java的特性:
简单性、面向对象、健壮、跨平台、分布式、高性能、安全性。
5、Java注释、关键字与标识符
注释://(单行注释)、/**/(多行注释)、/***/(文档注释)
关键字:
访问控制
private protected public
类,方法和变量修饰符abstract class extends final implements interface native new
static strictfp synchronized transient volatile
程序控制
break continue return do while if else for instanceof switch
case default
异常处理
try cathc throw throws
包相关
import package
基本类型
boolean byte char double float int long short null true false
变量引用
super this void
保留字
goto const
标识符:
Java中自定义的一些内容;比如一个类名,函数名等等。
标识符的规则;
组成:字母52个A~Z、a~z ;数字0~9 ; 下划线 _ ; 美元符 $ ;
注意:不能数字开头,不能是关键字。
类名:首字母大写,后面单词首字母大写;
函数名:首字母小写,后面单词首字母大写;
6、Java的数据类型:Java是强类型编程语言,必须声明其类型
- 整型:long、int、short、byte (整数默认类型int long型数据后面要加“L”字符)
- 浮点型:float、double (浮点数默认类型double float型数据后面加"F"字符)
- 字符型:char
- 布尔型:boolen
String 不是基本类型,但是跟基本类型使用方法一样。
十进制:我们很熟悉 例:20
二进制:0B开头 例:0B10
八进制:0开头 例:051
十六进制:0x开头 例:0xE
除了这八种基本数据类型其他都是引用类型;
public class valueTest {
public static void main(String[] args) {
// TODO Auto-generated method stub
long minValue=java.lang.Long.MIN_VALUE;
System.out.println(maxValue);
}
}
7、变量与存储
变量:(三要素:类型、名字、数据数值)
- 变量是内存中装数据的小盒子,不停地放进、取出。
- 变量中的数据可以随时改变,但是变量的类型确定了不能随便改变,只能重新声明变量。
注意事项: 变量可以不赋值,但是要不赋值不能使用。
变量的作用范围只在声明它的花括号内。
不可以重复声明同名变量。
内存(临时)与硬盘(永久)都是存储容器:最小信息单元是位(bit),最小的存储单位是字节(byte 8位);
8、常用类的使用
Scanner类:让我们接收键盘的输入,下面是使用步骤:
1、导入包:指明类所在的文件util包中
2、创建出Scanner类型的变量 类名 变量名 = new 类名 ();
3、变量.功能名字();使用Scanner类中的功能。
相关函数:nextInt();接收键盘输入保证输入的是整数。
next();接收字符串输入。
Random类: 产生随机数;
1、导入包
2、创建Random类型的变量
3、调用Random类中的功能,产生随机数,伪随机数
相关函数:nextInt(int a):产生一个0~a之间的随机数不包括a;
nextDouble():产生一个0.0~1.0之间的随机数;
9、条件语句
if语句
if(条件语句){ 注意:条件语句的结果必须是布尔类型。条件语句判断为true,执行执行体,否则什么都不做。
执行体;
}
其他形式:if......else...... 多重if.....else if.....else if......else......
三元运算符与if......else......效果相似
switch语句 注意:执行到break结束,如果不写beak会继续执行后面语句直到出现break或者结束。成为case穿透性。
switch(){
case:执行体;break;
case:执行体;break;
case:执行体;break;
}
10、循环语句
- while(条件语句) {执行体}
- for(初始化变量;条件;增量){循环体}
- do(执行体)while(条件语句) 先执行条件语句再判断
嵌套for循环:
public class PrintMulTable{
public static void main(String[] args) {
final int ten=10;
for (int i = 1; i < ten; i++) {
for (int j = 1; j <=i; j++) {
System.out.print(i+"*"+j+"="+i*j+"\t");
}
System.out.println();
}
}
}
11、跳转语句 break、continue
break:结束任何循环;
continue:终止本次循环,进行下次循环。
public class BreakDemo02 {
public static void main(String[] args) {
int i, j; // 定义两个循环变量
itcast: for (i = 1; i <= 9; i++) {
for (j = 1; j <= i; j++) {
if (i > 4) {
break itcast;
}
System.out.print("*");
}
System.out.print("\n");
}
}
}
注意标记问题:在for之前出现标识:itcast;
12、数组
数组类型 数组名 [ ]= new 数组类型 [ ];
数组类型 数组名 [ ]= new 数组类型 [ 不写内容]{元素1,元素2,元素3};
数组类型 数组名 [ ]={元素1,元素2,元素3};
三种初始化方式:
两种动态初始化:1)、int [] a=new a[4];
2)、利用for循环动态初始化;
一种静态初始化:int [4] a={1,2,3,4,5};
数组是一个容器:存储到数组中的每一个元素,都有自己的编号。
访问数组元素必须依赖这个编号,也就是索引。
相关属性方法:length :返回数组长度;
数组遍历依靠索引;
最大值问题:
public class ArrMax {
public static void main(String[] args) {
int arr1 []={4,1,2,7};
int max=arr1[0];
for (int i = 1; i < arr1.length; i++) {
if (max<arr1[i]) {
max=arr1[i];
}
}
System.out.println("数组中最大的数为:"+max);
}
}
二维:数组中定义三个一维数组,每个数组没定义。
必须要new
int [][]arr=new int[3][];
arr[0]=new int [4];
注:建议用最简单方式初始化int[][]arr={{},{}}
public class ArrArrDemo {
public static void main(String[] args) {
int arr[][]={{1,2,3},{4,5,6,7},{8},{9,0}};
for (int i = 0; i < arr.length; i++) {
for(int j=0;j<arr[i].length;j++){
System.out.println(arr[i][j]);
}
}
}
}
产生随机姓名的问题:
public class CallName {
public static void main(String[] args) {
String nameString []={"宋","齐","陈","王"};
for (int i = 0; i < nameString.length; i++) {
System.out.println("班级所有人名字:"+nameString[i]);
}
System.out.println("********************************");
Random nameRandom=new Random();
int j=nameRandom.nextInt(nameString.length);
System.out.println("我要点:"+nameString[j]+"回答问题。");
}
公司业绩问题:
public class ArrArrSum {
public static void main(String[] args) {
//公司有3组员工,求每组员工的总业绩,最后求所有员工的总业绩。
//100,125,366;52,69,89;178,154,56
int team [] []={{100,125,166},{152,69,89},{178,154,56}};
int sum=0,groupSum=0;
for (int i = 0; i < team.length; i++) {
for (int j = 0; j < team[i].length; j++) {
groupSum+=team[i][j];
}
sum+=groupSum;
System.out.println("第"+i+"小组的业绩:"+groupSum);
groupSum=0;
}
System.out.println("公司总业绩:"+sum);
}
}
用数组的遍历功能编写简易商品管理项目:
import java.util.Scanner;
public class Shop {
public static void show(String name[], double size[], double price[],
int count[]) {
System.out.println("商品清单");
System.out.println("---------------------------");
System.out
.println("序列 商品名称 商品尺寸 商品价格 商品库存");
for (int i = 0; i < name.length; i++) {
System.out.println((i + 1) + " " + name[i] + " "
+ size[i] + " " + price[i] + " "
+ count[i]);
}
}
public static void setBrand(String brandStrings[]) {
System.out.println("请输入需要修改名称商品的序号:");
Scanner brandIndex = new Scanner(System.in);
int index = brandIndex.nextInt();
System.out.println("你已选择" + index + "号商品!" + "请修改名称:");
Scanner inputBrand = new Scanner(System.in);
String brand = inputBrand.next();
brandStrings[index - 1] = brand;
System.out.println("修改结束请选择功能1查看");
}
public static void setCount(int counts[]) {
System.out.println("请输入需要修改库存商品的序号:");
Scanner sizeIndex = new Scanner(System.in);
int index = sizeIndex.nextInt();
System.out.println("你已选择" + index + "号商品!" + "请修改库存:");
Scanner inputCount = new Scanner(System.in);
int count = inputCount.nextInt();
counts[index - 1] = count;
System.out.println("修改结束请选择功能1查看");
}
private static void setPrice(double[] prices) {
// TODO Auto-generated method stub
System.out.println("请输入需要修改价格商品的序号:");
Scanner sizeIndex = new Scanner(System.in);
int index = sizeIndex.nextInt();
System.out.println("你已选择" + index + "号商品!" + "请修改价格:");
Scanner inputPrice = new Scanner(System.in);
double price = inputPrice.nextDouble();
prices[index - 1] = price;
System.out.println("修改结束请选择功能1查看");
}
private static void setSize(double[] sizes) {
// TODO Auto-generated method stub
System.out.println("请输入需要修改尺寸商品的序号:");
Scanner sizeIndex = new Scanner(System.in);
int index = sizeIndex.nextInt();
System.out.println("你已选择" + index + "号商品!" + "请修改尺寸:");
Scanner inputSize = new Scanner(System.in);
double size = inputSize.nextDouble();
sizes[index - 1] = size;
System.out.println("修改结束请选择功能1查看");
}
public static void main(String[] args) {
String brandString[] = { "苹果Pro", "华为Mate", "ThinkpadE570" };
double size[] = { 13.5, 14.0, 15.0 };
double price[] = { 9999.0, 5600, 6200 };
int count[] = { 0, 0, 0 };
System.out.println("请选择您要实现的功能:");
System.out.println("1、展示商品详情");
System.out.println("2、修改商品库存");
System.out.println("3、修改商品种类 ");
System.out.println("4、修改商品尺寸");
System.out.println("5、修改商品价格");
System.out.println("6、退出程序");
System.out.println("------------------------------");
while (true) {
Scanner input = new Scanner(System.in);
int index = input.nextInt();
switch (index) {
case 1:
show(brandString, size, price, count);
break;
case 2:
setCount(count);
break;
case 3:
setBrand(brandString);
break;
case 4:
setSize(size);
break;
case 5:
setPrice(price);
break;
case 6:
return;
default:
System.out.println("你输入的功能不符,请重新输入!");
break;
}
}
}
}
13、Arraylist集合
Arraylist是引用类型容器,其中提供了大量方法用来操作添加,删除或修改等等;
例:add(Object o); add(Object o,int index); get(int index); size();
注:集合中不能装入基本数据类型;要想装入基本数据类型的数据,必须用对应的包装类;
long Long float Float
int Integer double Double
short Short char Charecter
byte Byte boolen Boolen
集合中可以放入我们自己创建的的引用类型,如 Student student=new Student(); 利用ArraList的get();我们
可以直接调用自定义引用类型的属性和方法。相对数组类说,集合功能强大。
14、方法重载只与参数列表和方法名有关。
方法传值问题:1、方法参数是基本数据类型
2、方法参数是引用类型传的是内存地址!