public static void main class system out print line problem
main方法的框架 :public static void main(String[] args){}
main()方法是程序的入口,可以出现的任何一个类中,但要保证一个Java类种只用一个main()方法。
向控制台输出内容:System.out.println();
转义字符:
换行:“\n”
一个制表位:“\t”
Java程序中的注释:
单行注释:使用“ // ”开头
多行注释:以“ /* ”开头,以“ */ ”结尾。
文本注释: 以“ /** ”开头,以“ **/”结尾。
double string character integer scanner score name boolean true false
Java语言提供了八种基本类型。六种数字类型(四个整数型,两个浮点型),一种字符型,还有一种布尔型。
1.整形:byte, short, int, long
一般地整型变量默认为int类型
baty: 取值范围-128(-2^7)~127(2^7-1) 默认是 0
baty a = 127; baty b = -128;
short: 取值范围-32768(-2^15)~32767(2^15-1) 默认值 0
short a = -32768; short b = 32767;
int: 取值范围-2147483648(-2^31)~2147483647(2^31-1) 默认值 0
int a = -2147483648; int b = 2147483647;
long: 取值范围- ~
-1 默认值 0L
long a = 10000L; long b = -10000L;
L理论上不分大小写
2.浮点型:float,double
浮点数的默认类型为double类型
float: 数据类型是单精度浮点数, 默认值是0.0f; 浮点数不能用来表示精确度,如货币
float a = 234.5f;
double: 数据类型是双精度浮点数, 默认值:0.0d; double类型同样不能表示精确的值,如货币
3.字符型:char
最小值是 \u0000(十进制等效值为0);
最大值是\ufff(即为65535);
默认值:‘\u0000’
char a = 'A';
4.布尔型:boolean
只有两个取值:true 和 false
默认值:false
boolean a = true; boolean b = false;
5.字符串型:String
String a = "xiaoemo";
默认值:null
变量是一个数据存储空间的表示(内存中的一块存储空间)。
变量由变量名,变量类型,变量的值三部分组成。
变量声明及使用
声明变量:即“根据数据类型在内存中申请一块空间”,这里需要给变量命名。
语法:数据类型 变量名;
String name; //声明字符串变量name存储学生姓名
char sex; //声明字符型变量sex存储性别
double score; //声明双精度浮点型变量score存储分数
为变量赋值:即“将数据存储至对应的内存空间”。
语法:变量名 = 值;
name = "张三"; //存储"张三"
score = 98.5; //存储98.5
sex = '男'; //存储'男'
声明变量并赋值:
语法:数据类型 变量名 = 值;
String name = "张三";
double score = 98.5;
char sex = '男';
调用变量:即“使用存储的变量”
使用声明的变量名就是使用变量对应的内存空间中存储的数据。
System.out.println(name); //从控制台输出变量name的值
System.out.println(score); //从控制台输出变量score的值
System.out.println(sex); //从控制台输出变量sex的值
变量命名规则
规范:变量名要简短且能清晰地表达变量的作用,可以由多个单词组合而成,通常第一个单词的首字母小写,其后单词首字母要大写。
条件 | 合法变量名 | 非法变量名 | |
1 |
变量必须以字母,下划线,“-”,或“$” | _myCar scorel $myCar grah1_1 |
*myvariablel 9variable Varia ble% a+b My Variable t1-2 |
2 | 变量可以包括数字,但不能以数字开头 | ||
3 | 除了“-”或“$”符以外,变量名不能包含任何特殊字符 | ||
4 | 不能使用Java语言的关键字,如int ,class,public |
就是 “ = ”
“=”称为赋值运算符
“=”的功能是等号右边表达式的结果赋值给等号左边的变量
“=”和“==”的区别
(1)"="是赋值运算符,即把右边的值赋给“=”左边的变量,如int num = 20;
(2)"=="是比较运算符,即“==”左边的值与“==”右边的值比较,看它们 是否相等,如果相等则为true,否则为false,如3==4的结果为false。11
运算符 | 说明 | 举例 |
+ | 加法运算符,求操作数的和 | 5+3等于8 |
- | 减法运算符,求操作数的差 | 5-3等于2 |
* | 乘法运算符,求操作数的乘积 | 5*3等于15 |
/ | 除法运算符,求操作数的商 | 5/3等于1 |
% | 取余运算符,求操作数相除的余数 | 5%3等于2 |
++ | 变量自增1,然后就将其结果进行赋值(运算) | 自增运算,i++,++i |
-- | 先进行赋值(运算),然后变量自增1 | 自减运算,i--,--i |
i++先赋值,后自增
++i先自增,后赋值
数据类型转换
1.自动数据类型转换
2.强制数据类型转换
关系运算符
关系运算符 | 说明 | 举例 |
> | 大于 | 99>100,结果为false |
< | 小于 | 大象的寿命<乌龟的寿命,结果为true |
>= | 大于等于 | 你的考试成绩>=200分,结果为false |
<= | 小于等于 | 每次的考试成绩>=60分,结果为false |
== | 等于 | 地球的大小==篮球的大小,结果为false |
!= | 不等于 | 水的密度!=铁的密度,结果为true |
逻辑运算符
运算符 | 汉语名称 | 表达式 | 说明 | 举例 |
&& | 与,并且 | 条件1 && 条件2 | 两个条件同时为真,则结果为真;两个条件又一个为假,则结果为假 | 具有选举权的条件:年满十八周岁&&中国公民 两个条件都为真则具有选举权。有一个条件为假,则不具有选举权 |
|| | 或,或者 | 条件1||条件2 | 两个条件有一个为真,则结果为真;两个条件同时为假,则结果为假 | 从北京去昆明的方式:乘车||乘飞机 两个条件有一个条件为真就可以去昆明。若都为假,则不去昆明。 |
! | 非 | !条件 | 条件为真实,结果为假。条件为假时,结果为真 | 成为优秀开发人员的条件: !偷懒 |
Java提供了可以从控制台获取键盘输入的功能,获取整形变量调用 next整形数据类型()方法。如果获取的是字符串则需要调用next()方法。
要使用这个功能,必须在Java源代码的第一行写上:
import java.util.Scanner;或者 import java.util.*;
if else break continue match gender random score case switch sefault
exit
if选择结构:
1.基本if选择结构:可以处理单一或组合条件的情况。
语法:if(条件1){
//代码块
}
2.if-else选择结构:可以处理简单的条件分支情况。(使用较频繁)
语法:if(条件1){
//代码块1{
}else{
//代码块2
}
3.多重if选择结构:可以处理复杂的条件分支情况。在解决需要判断的条件是连续的区间时有很大优势。
语法:if(条件1){
//代码块1
}else if(条件2){
//代码块2
}else{
//代码块3
}
嵌套if选择结构:在if选择结构中又包含一个或多个if选择结构的情况,一般用于较为复杂的流程控制中。
语法:if(条件1){
if(条件2){
//代码块1
}else{
//代码块2
}else {
if(条件3){
//代码块3
}else{
//代码块4
}
switch先择结构:需要多重分支并且条件判断是等值判断的情况下,使用switch选择结构会更简单,代码结构更清晰易读。
语法:switch(要判断的常量){
case 常量1:
//代码块1;
break;
case 常量2:
//代码块2;
break;
......
case 常量n:
//代码块n;
break;
}
while do index bug debug step equal error
1.while循环结构
语法:while(循环条件){
循环操作
}
2.do-while循环
语法:do{
循环操作
}while(循环条件);
rate young schedule negative customer birthday contine return
3.for循环
语法:
for(表达式1;表达式2;表达式3){
//循环体
}
4.break语句
用于终止某个循环,使程序跳到循环体外的下一条语句。在循环中位于break语句后的语句将不再执行,循环也停止执行。
5.continue语句
在某次循环中,不执行完循环体中所有的语句,就想跳出此循环,开始执行下一次循环。
break语句是用于终止某个循环,程序跳转到循环体外的下一条语句。
continue语句是用于跳出本次循环,进入下一次循环的语句。
while循环语句:
while(条件){
//循环体
}
do-while循环语句:
do{
//循环体
}while(条件);
for循环语句:
for(初始化; 条件; 迭代){
//循环体
}
while循环结构:
先进行条件判断,再执行循环体。如果条件不成立,退出循环。
do-while循环结构:
先执行循环体,在进行条件判断,循环体至少执行一次。
for循环结构:
先执行初始化部分,在进行条件判断,然后执行循环体,最后进行迭代部分的计算。如果条件不成立,跳出循环。
在解决问题时,对于循环次数确定的情况,通常选用for循环结构。对于循环次数不确定的情况,通常使用while和do-while循环结构。
while二重循环语法:
while(循环条件1){
//循环操作1
while(循环条件2){
//循环操作2
}
}
do-while二重循环语法:
do{
//循环操作1
do{
//循环操作2
}while(循环条件1);
}while(循环条件2);
for二重循环语法:
for(循环条件1){
//循环操作1
for(循环条件2){
//循环操作2
}
}
while与for嵌套二重循环语法:
while(循环条件1){
//循环操作1
for(循环条件2){
//循环操作2
}
}
class object return programming null initial type oriented
在Java中创建一个类,需要使用一个class,一个类名和一对大括号。
class是创建类的关键字。在class前有一个public,表示“公有”的意思。
语法:public class 类名{
//定义属性部分
//定义方法部分
}
类名创建规则:
数据类型 变量名;
访问修饰符 返回值类型 方法名(){
//方法体
}
public class School{
//定义属性部分:数据类型 变量名;
String schoolName;
int classNumber;
int labNumber;
//定义方法部分 访问修饰符 返回值类型
public void showSchool(){
System.out.println(schoolName+"学院\n"+"配置:\n"+classNumber+"间教室\n"+labNumber+"间机房\n");
}
}
创建对象:类名 对象名 = new 类名();
引用对象:对象名.属性名
引用方法:对象名.方法名
public class Example02 {
//定义属性部分(变量)
String schoolName;
int classNumber;
int labNumber;
//定义方法部分
public void showSchool(){
System.out.println(schoolName+"学院\n"+"配置:\n"+classNumber+"间教室\n"+labNumber+"间机房\n");
}
//调用属性和方法
public static void main(String[] args) {
Example02 object = new Example02(); //创建对象:类名 对象名 = new 类名();
System.out.println("********初始化变量之前*********");
object.showSchool(); //调用方法:对象名.方法名();
//初始化(赋值)属性(变量)
object.schoolName="许昌电气职业";
object.classNumber= 89 ;
object.labNumber= 89;
System.out.println("*******初始化变量之后*******");
object.showSchool(); //调用showSchool()方法:对象名.方法名();
}
}
运行结果如下
static可以用来修饰类的成员方法,类的成员变量,另外可以编写static代码块来优化程序性能。
static修饰的成员变量和成员方法习惯上称为静态变量和静态方法,可以直接通过类名来访问。
语法:
类名.静态变量名
类名.静态方法名(参数列表...)
public class Example03 {
//创建静态属性(变量)
static String name = "xiaoji";
//创建静态方法
public static void print(){
System.out.print("一起来学习Java吧"+"\n");
}
public static void main(String[] args){
Example03 object = new Example03(); //创建Example03类的对象
System.out.println("通过对象直接访问:"+object.name); //通过对象访问name属性 对象名.方法名();
System.out.println("通过类名直接访问:"+Example03.name); //通过类名访问name属性 类名.方法名();
object.print(); //通过对象访问print()方法 对象名.方法名();
Example03.print(); //通过类名访问print()方法 类名.方法名();
}
}
运行结果如下
静态方法只能访问静态成员,实例方法(普通方法)可以访问静态和实例成员。之所以不允许静态方法访问实例成员变量,是因为实例成员变量是属于某个对象的,而静态方法在执行时,并不一定存在对象。
document method version parameter private protected
计算机中的函数
计算机中的函数是指一段可以直接被另一段程序或代码引用的程序或代码。(oop)中叫方法。
函数的语法
1.函数定义的语法
方法体
[return结果]
}
注意: 1)<>表示有的时候可以不写
2)[]表示的是定义函数的另外一种情况下的语法
2.函数调用的语法
数据类型 变量名=函数名(变量名|值,变量名|值);
注意: 1)|或者意思两个都可以但每次只能出现一个。
不带参数的方法
什么是类的方法
类的方法必须包括以下3个部分:1.方法的返回值类型 2.方法的名称 3.方法的主体
语法:public 返回值类型 方法名(){
//方法的主体
}
语法:return 表达式;
语法:对象名.方法名();
1.定义带参数方法
<访问修饰符>返回值类型<方法名>(<参数列表>){
//方法的主体
}
<访问修饰符>指该方法允许被访问的权限范围,只能是public,protected 或 private。public访问修饰符表示该方法可以被任何其他代码调用。
2.调用带参数方法
语法:对象名.方法名(参数1,参数2,...... ,参数n);
带多个参数的方法
equal ignore lower upper split buffer static final
语法:字符串1.charAt();
charAt() 方法用于返回指定索引处的字符。索引范围为从 0 到 length() - 1。
实列:
public class text {
public static void main(String[] args){
String a = "xiaoemo";
char b = a.charAt(2);
System.out.println(b);
}
}
运行结果:
1_1:获取字符串长度
语法:字符串1.length();
返回 “字符串1”的长度。
1_2:字符串的比较
语法:字符串1.equals(字符串2);
比较两个字符串的值是否相同,返回boolean类型的值。如果相同,则返回true;否则返回false。
双等号(==)和 equals()方法的区别?
1_3:忽略字符的大小写比较字符串
语法:字符串1.equalslgnoreCase(字符串2);
忽略大小写,比较字符串1和字符串2。如果都相同,则返回true;否则返回false。
1_4:将字符变小写
语法:字符串.toLowerCase();
返回字符串的小写形式
1_5:将字符变大写
语法:字符串.toUpperCase();
返回字符串的大写形式
2_1.字符串的链接
语法:字符串1.concat(字符串2);
字符串2被连接到字符串1的后面,返回链接后的新字符串。
2_2.连接字符串的方法有两种:
1.使用“+”运算符
2.使用String类的concat()方法
2_3.字符串的提取和查询
indexOf();
在字符串内搜索某个指定的字符或字符串,它返回出现第一个比配字符的位置
lastIndexOf();
搜索最后一个出现的字符(或字符串)的位置
substring(int index);
调用时括号中写的是要提取的字符串的开始位置,方法的返回值就是要提取的字符串
substring(int beginindex,int endindex)
2_4.字符串的拆分
字符串1.split(String separator,int limit);
separator可选项,标识拆分字符串时使用一个或多个字符。如果不选择该项,则返回包含该字符串所有单个字符的元素数组;
limit可选项,该值用来限制返回数组中的元素个数。
1.如何使用StringBuffer类
声明StringBuffer对象并初始化
StringBuffer object = new StringBuffer();
声明一个字符串
StringBuffer object = new StringBuffer("青春无悔");
2.常用的StringBuffer类方法
字符串1.toString(); 将StringBuffer类型的字符串1转换为String类型的对象并返回。
字符串1.append(字符串2); 将字符串1连接到字符串2后并返回。
字符串1.insert(位置,参数); 将参数插入到字符串1的指定位置后并返回
array length sort maximum minimum reference info primitive
2_1.声明数组
语法:数据类型[] 数组名;
int[] scores;
double[] height;
String[] names;
2_2.分配空间
语法:数组名 = new 数据类型[数组长度];
scores = new int[30];
height = new double[30];
names = new String[30];
语法:数据类型[] 数组名 = new 数据类型[数组长度]
int[] scores = new int[30];
2_3.赋值
语法:数组名[数组下标];
scores[0] = 89;
scores[1] = 60;
scores[2] = 70;
语法:数据类型[] 数组名 = {值1,值2,值3,值4......,值n}
int[] scores = {60,70,98,90,76}; //创建一个长度为5的数组scores
语法:数据类型[] 数组名 = new 数据类型[]{值1,值2,值3,......,值n }
int[] scores = new int[]{60,70,98,90,76};
int[] scores = new int[5] //定义数组
Scanner sc = new Scanner(System.in);
for(int i = 0; i < scores.length; i++){
scores[i] = sc.nextInt();
}
Array.sort(数组名); 完成对数组的排序