Java1关键字/数据类型/标识符/运算符,if/switch/for/while,数组,属性/方法,可变参数,构造器,this/super/继承,抽象,初始化,接口,多态,权限修饰符
Posted 码农编程录
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java1关键字/数据类型/标识符/运算符,if/switch/for/while,数组,属性/方法,可变参数,构造器,this/super/继承,抽象,初始化,接口,多态,权限修饰符相关的知识,希望对你有一定的参考价值。
文章目录
- 1.jdk安装:JAVA_HOME
- 2.idea安装:全局settings
- 3.关键字/常量/变量:javac
- 4.数据类型/标识符/类型转换:小大自
- 5.算术/赋值/自增运算符:前先自加1,48/65/97,ascii,转义符
- 6.关系/逻辑/三元运算符:&&短路
- 7.if/switch/for/while/do.while:没有break
- 8.一维数组:int[ ] a =
- 9.家庭收支界面:/t
- 10.属性/方法:if elseif else,成/局变量
- 11.方法重载:内存地址==
- 12.变量分类:方法的参数
- 13.可变参数:[ ]或...
- 14.封装:数据抽象
- 15.对象数组:先new
- 16.构造器:不写也有无参构造
- 17.this/super/继承:多重,匿名对象
- 18.抽象:下定义
- 19.实例初始化过程:有几个构造器,就会有几个实例初始化方法
- 20.实例初始化和类初始化结合:先类(静态)后实
- 21.接口:只有abstract可省
- 22.多态:和属性无关,只说方法
- 23.final:final只有get方法
- 24.static:修饰的成员变量不进堆
- 25.四大权限修饰符:记住中间两个本包,ppdp
1.jdk安装:JAVA_HOME
如下链接:https://pan.baidu.com/s/11Uw-bnuFmITCWU5Ne5z_sw 提取码:dgtr。双击如下jdk1.8安装,安装到D:\\development\\jdk1.8
,弹出新框jre安装到D:\\development\\jdk1.8\\jre1.8
。
此电脑右击属性(可查看计算机多少位)-
高级系统设置-
环境变量,在下面框的系统环境变量
新建。
如下选中path系统变量点编辑
再点编辑文本
,将上面路径添加进去再加bin以分号结束,取变量。
win下cmd查看如下。
2.idea安装:全局settings
idea软件链接:https://pan.baidu.com/s/1T9O7QiGyNEMoT-xehDnNEg 提取码:p5yd。安装到D:\\development,自动生成IntelliJ IDEA 2018.1文件夹
将JetbrainsCrack-2.7..jar包
(链接:https://pan.baidu.com/s/1pQTyb7OT0S4DPPwPnA9HDQ 提取码:igri)复制到D:\\development\\IntelliJ IDEA 2018.1\\bin(右击idea图标点属性),在bin目录下找到两个
idea…vmoptions文件最后一行都添加-javaagent:D:\\development\\IntelliJ IDEA 2018.1\\bin\\JetbrainsCrack-2.7-release-str.jar
,双击idea软件如下复制进去
ThisCrackLicenseId-
"licenseId":"ThisCrackLicenseId",
"licenseeName":"Gail_Hu",
"assigneeName":"",
"assigneeEmail":"Gail_Hu@126.com",
"licenseRestriction":"For This Crack, Only Test! Please support genuine!!!",
"checkConcurrentUse":false,
"products":[
"code":"II","paidUpTo":"9999-12-31",
"code":"DM","paidUpTo":"9999-12-31",
"code":"AC","paidUpTo":"9999-12-31",
"code":"RS0","paidUpTo":"9999-12-31",
"code":"WS","paidUpTo":"9999-12-31",
"code":"DPN","paidUpTo":"9999-12-31",
"code":"RC","paidUpTo":"9999-12-31",
"code":"PS","paidUpTo":"9999-12-31",
"code":"DC","paidUpTo":"9999-12-31",
"code":"RM","paidUpTo":"9999-12-31",
"code":"CL","paidUpTo":"9999-12-31",
"code":"PC","paidUpTo":"9999-12-31"
],
"hash":"2911276/0",
"gracePeriodDays":7,
"autoProlongated":false
在idea软件打开界面右下角点击Configure-
Project Defaults-
Project Structure 如下点New配置JDK。
如下点Configure-
settings,Editor-General如下点击apply。
3.关键字/常量/变量:javac
//HelloWorld.java,类名和文件名要同
public class HelloWorld
public static void main(String[] args)
System.out.println("HelloWorld");
1.为什么要编译
:代码最终是要交给JVM去执行的,而我们写的代码JVM不认识,所以我们必须要将我们自己写的代码翻译成JVM他认识的代码,这样他才能够去执行。 这个翻译的过程其实就是编译。
2.编译使用的工具
:编译要使用jdk的bin目录下的工具javac.exe去完成。
3.编译的步骤
:将HelloWorld.java移动到jdk的bin目录(因为我们需要使用Jdk的bin目录中的javac.exe进行编译)。在jdk的bin目录打开控制台,然后输入命令javac
HelloWorld.java(编译完之后,会生成一个.class文件,这个.class文件就是将来要交给JVM执行的文件),再输入命令java
HelloWorld(运行的真正是.class文件,但是运行的时候不要带扩展名)。
4.配置环境变量的目的
:为了可以在任何目录下使用jdk的bin目录下的工具(javac.exe, java.exe),在第一章已配置好,重新打开dos窗口。在Java内置好的,被Java赋予特殊含义的单词就是关键字。关键字所有字母都小写且在高级的编辑器中会变色,如下java关键字。
所有常量中,空常量null
不能直接输出,其他的常量都是可以直接使用输出语句进行输出的。
变量定义格式:数据类型 变量名 = 初始值;
。如下short取值范围-32768到32767
,int是-21亿多到21亿多
。bsil
fd cb
4.数据类型/标识符/类型转换:小大自
标识符就是我们自己给变量, 给方法, 给类…所起的名字。标识符起名软性规定
如下:
硬性规定
如下:记住字下美+字下美数
:如下看红字前面即=号前面。
如下100亿超出int范围,所以要加L,并不是错误。
如下bsil fd多了一个c。
如下打印出结果为7。
如下报错:不兼容的类型: 从int转换到byte会有损失。
5.算术/赋值/自增运算符:前先自加1,48/65/97,ascii,转义符
/*
/:做除法。如果两个整数相除,结果只取整数部分。如果想要得到小数,那么只需要把除法两边任意一个改成小数
%:取余(模)运算。获取两个数相除之后的余数部分。可以判断一个数能否被另一个数整除,如果一个数可以被另一个数整除,那么取余的结果就是0
*/
public class Demo01Operator
public static void main(String[] args)
//定义两个变量
int a = 5;
int b = 3;
// /:做除法
System.out.println(a / b);//1
//得到小数,只需要把除法两边任意一个数改成小数,imt自动类型转换double
//System.out.println(5 / 3.0);//1.6666666666667
//%:取余(模运算)【获取a和b相除之后的余数部分】
System.out.println(a % b);//2
//判断653252能否被3整除,看结果是不是为0
System.out.println(653253 % 3);
/*
+号多种用途:
1. 如果对数值相加,起到的就是普通的数学中的加法运算。
2. 如果是字符运算,会先查询ASCII码表,将字符转成数字,然后再进行运算。
3. 如果加号只要有一个是字符串,那么此时就是在对字符串相加。
如果是对字符串相加,加号起到的作用就是拼接(连接)
任何类型只要和字符串相加,结果都是字符串类型。
ASCII码表是数字和字符的对应关系表
'a' -> 97
'A' -> 65 中间
'0' -> 48
*/
public class Demo02Operator
public static void main(String[] args)
int a = 3;
int b = 4;
System.out.println(a + b);//7
//定义两个字符,char转int运算
char c1 = 'a';//97
char c2 = '0';//48
System.out.println(c1 + c2);//145
//字符串相加,运算从左往后
System.out.println("HelloWorld" + a);//HelloWorld3
System.out.println("HelloWorld" + a + b);//HelloWorld34
System.out.println(a + b + "HelloWorld");//7HelloWorld
“A”:只有一个字符的字符串。ASCII控制字符前32个:不可打印,用于控制外设。如下32-127可打印,先看字符这一列:
/*
赋值运算符
基本的赋值运算符
=:将右边的值交给左边的变量保存。
扩展的赋值运算符
+=,-=,*=,/=,%=
作用:先求出运算符两边操作的结果,然后把这个结果赋值给左边的变量。
举例:
m += n:先求出m和n相加的结果,然后把这个结果赋值给左边的变量m。 运算结果相当于: m = m + n
m *= n:先求出m和n相乘的结果,然后把这个结果赋值给左边的变量m。 运算结果相当于: m = m * n
注意:
扩展的赋值运算符中蕴含了强制类型转换的功能。
*/
public class Demo03Operator
public static void main(String[] args)
short s = 10;
//使用+=符号进行运算 m+=n 运算结果相当于 m = m + n;
s += 3; //蕴含了强制类型转换或写成s = (short)(s + 3); //不加(short)报错为int转short有损失
System.out.println("s:" + s); //13
如果++运算符单独使用,++放在变量前和变量后没有任何区别,都是将变量本身的值加1,如果参与其他操作,是有区别的。前先加1,后先用1次
。
如上解释如下:
public class Demo05Operator
public static void main(String[] args)
int x = 4; //6
int y = (x++) + (++x) + (x * 10);
// 70 = 4 (运算完变成了5) + 6 + 60
System.out.println("x:" + x);//6
System.out.println("y:" + y);//70
j++看为一整体。
如下原始4个都没有报错。
6.关系/逻辑/三元运算符:&&短路
1.
Create New Project-
选择最下面的Empty Project,项目/模块/包/类。
2.
如下将光标放在External Libraries上再New。
3.
如下新建包,包名(所有字母小写)是域名(网址)的倒叙,包中圆点就是分隔文件夹。
如果编译出现java无效发行版9,则File->Project Structure,将Modules和project菜单中Language level改为8。
File-
Close Project。删除模块在idea中右击remove了还要到计算机里手动删除。模块导入:先手动将模块文件夹复制到计算机项目文件夹下,再进行Project Structure。
选中src右击新建Package命名为com.itheima.demo02,选中demo02右击新建类。
与:有0为0
,或:有1为1
,异或:同0
/*
&& 和 &的区别
相同点:运算结果相同。都是有false则结果是false。
不同点:
& 不管左边是true还是false,都会去计算右边
&& 如果左边是false,那么就不去计算右边的。 因为&&是有false则结果是false,左边是false,不管右边是啥,结果肯定是false。这种行为叫做短路行为。
|也可以写成两个||
||同样也是具有短路行为的,如果左边是true,那么就不去计算右边了。 因为||是有true则true。
*/
package com.itheima.demo02;
/*
三元运算符
作用:可以实现对结果进行二选一的操作。
格式:
布尔表达式 ? 值1 : 值2
执行流程:
1. 先判断布尔表达式的结果是true还是false。
2. 如果布尔表达式是true,那么整个三元运算符式子的结果就是值1.
如果布尔表达式是false,那么整个三元运算符式子的结果就是值2
注意:
三元运算符不能单独出现,要么用一个变量接受一下三元运算符的结果,要么直接使用【比如直接输出】
要求:
定义两个变量,获取这两个变量中的最大值
*/
public class Demo04Operator
public static void main(String[] args)
//定义两个变量
int a = 10;
int b = 20;
//使用三元运算符求出结果
int max = a > b ? a : b;
//输出max
System.out.println("max:" + max); //20
package com.itheima.demo02;
/*
需求:动物园里有两只老虎,已知两只老虎的体重分别为180kg、200kg,请用程序实现判断两只老虎的体重是否相同。
思路:
1. 定义两个变量,表示两只老虎的体重
2. 使用三元运算符比较这两个变量是否相同,并得到结果.
*/
public class Demo05OperatorTest
public static void main(String[] args)
//1. 定义两个变量,表示两只老虎的体重
int weightOne = 180;
int weightTwo = 200;
//2. 使用三元运算符比较这两个变量是否相同,并得到结果.
//boolean flag = weightOne == weightTwo ? true : false;
//下面写法更简单,==本身结果为true/false
boolean flag = weightOne == weightTwo;
System.out.println(flag);
package com.itheima.demo03;
/*
使用Scanner键盘录入整数,步骤【背下来,不需要理解】:
1. 导包
import 包名.类名;
import java.util.Scanner;
注意:导包操作要写在package和class之间
2. 创建对象【new出来的都是对象】
数据类型 对象名 = new 数据类型(...);
Scanner sc = new Scanner(System.in);
3. 调用方法,键盘录入整数
对象名.方法名(...);
int a = sc.nextInt(); //sc.nextInt()在键盘录入整数,然后把录入的这个数字赋值给了变量a
*/
import java.util.Scanner; //导包
public class Demo02Scanner
public static void main(String[] args)
//创建对象
Scanner sc = new Scanner(System.in);
//在键盘录入之前该出提示
System.out.println("请你键盘录入一个整数");
//调用方法,键盘录入整数
int a = sc.nextInt();
System.out.println(a);
如下rt.jar在lib文件夹里。
public class HelloWorld
public static void main(String[] args)
Scanner sc = new Scanner(System.in);
System.out.println("请输入一个数字:");
int a = sc.nextInt();
System.out.println("请输入你要进行的运算符号(+,-,*,/)“:");
char b = sc.next().charAt(0);
System.out.println("请在输入一个数:");
int c = sc.nextInt();
switch (b)
case '+':
int sumNum = a + c;
System.out.println("计算的结果是:" + sumNum);
break;
case '-':
int subNum = a - c;
System.out.println("计算的结果是:" + subNum);
break;
case '*':
int multNum = a * c;
System.out.println("计算的结果是:" + multNum);
break;
case '/':
if(c == 0)
System.out.println("被除数不能为0");//判断被除数为0的情况
else
float diviNum= (float)(a / c);
System.out.println("计算的结果为:" + diviNum);
break;
default:
System.out.println("对不起输入有误!");//没有按照正确的格式输入
break;
7.if/switch/for/while/do.while:没有break
先匹配case,但如下都没匹配上,所以先default。
如下1月和2月都属于冬季。
如下发生穿透。
如下case 0不执行。
变量不能用for循环。
8.一维数组:int[ ] a =
8.1 数组的内存分析(静态):数组名=首地址
8.2 数组的内存分析(动态):元素默认值
8.3 数组相关算法:求一个长度为10的整型数组的最大元素
找最值:array[i] > max
平均值:.length
Java学习-----01.Java基础