常量(应用)
常量:在程序运行过程中,其值不可以发生改变的量。
Java 中的常量分类: 字符串常量 用双引号括起来的多个字符(可以包含 0 个、 一个或多个) , 例如 "a" 、 "abc" 、 " 中国 " 等
整数常量 整数,例如: - 1 0 、 0 、 88 等
小数常量 小数,例如: -5.5 、 1 . 0 、 88.88 等
字符常量 用单引号括起来的一个字符,例如: ' a' 、 ' 5' 、 ' B' 、 ' 中 ' 等
布尔常量 布尔值,表示真假,只有两个值 true 和 false
空常量 一个特殊的值,空值,值为 null
除空常量外,其他常量均可使用输出语句直接输出
数据类型(记忆、 应用)
计算机存储单元 :计算机是可以用来存储数据的,但是无论是内存还是硬盘,计算机存储设备的最小信息单元叫 “ 位 ( bit ) ” , 又称之为 “ 比特位 ” , 通常用小写的字母 ”b” 表示。 而计算机中最基本的存储单元叫 “ 字节( byte ) ” , 通常用大写字母 ”B” 表示,字节是由连续的 8 个位组成。 除了字节外还有一些常用的存储单位,其换算单位如下:
1 B ( 字节) = 8bit
1 KB = 1024B
1 MB = 1024KB
1 GB = 1024MB
1 TB = 1024GB
Java 中的数据类型
Java 是一个强类型语言, Java 中的数据必须明确数据类型。 在 Java 中的数据类型包括基本数据类型和引用数据类型 两种。 Java 中的基本数据类型:
说明: e+38 表示是乘以 1 0 的 38 次方,同样, e-45 表示乘以 1 0 的负 45 次方。
在 java 中整数默认是 i nt 类型,浮点数默认是 double 类型。
变量(应用)
变量的定义
变量:在程序运行过程中,其值可以发生改变的量。 从本质上讲,变量是内存中的一小块区域,其值可以在一定范围内变化。 变量的定义格式:
或者
还可以在同一行定义多个同一种数据类型的变量,中间用逗号隔开:
类型转换(理解)
在 Java 中,一些数据类型之间是可以相互转换的。 分为两种情况:自动类型转换和强制类型转换。 自动类型转换:
把一个表示数据范围小的数值或者变量赋值给另一个表示数据范围大的变量。 这种转换方式是自动的,直接书写即 可。 例如:
强制类型转换: 把一个表示数据范围大的数值或者变量赋值给另一个表示数据范围小的变量。 强制类型转换格式:目标数据类型 变量名 = ( 目标数据类型 ) 值或者变量 ; 例如:
说明: 1 . char 类型的数据转换为 i nt 类型是按照码表中对应的 i nt 值进行计算的。 比如在 ASCII 码表中, ' a' 对应 97 。
2. 整数默认是 i nt 类型, byte 、 short 和 char 类型数据参与运算均会自动转换为 i nt 类型。
字符的 “+” 操作
char 类型参与算术运算,使用的是计算机底层对应的十进制数值。需要我们记住三个字符对应的数值:
' a' -- 97 a-z 是连续的,所以 ' b' 对应的数值是 98 , 'c' 是 99 , 依次递加
'A' -- 65 A-Z 是连续的,所以 ' B' 对应的数值是 66 ,' C' 是 67 , 依次递加
' 0' -- 48 0-9 是连续的,所以 ' 1 ' 对应的数值是 49 , ' 2' 是 50 , 依次递加
算术表达式中包含不同的基本数据类型的值的时候,整个算术表达式的类型会自动进行提升。 提升规则:
byte 类型, short 类型和 char 类型将被提升到 i nt 类型,不管是否有其他类型参与运算。 整个表达式的类型自动提升到与表达式中最高等级的操作数相同的类型
等级顺序: byte,short,char --> int --> long --> float --> double
例如:
tips : 正是由于上述原因,所以在程序开发中我们很少使用 byte 或者 short 类型定义整数。 也很少会使用 char 类型定 义字符,而使用字符串类型,更不会使用 char 类型做算术运算。
赋值运算符(应用)
自增自减运算符(理解)
注意事项:
++ 和 -- 既可以放在变量的后边,也可以放在变量的前边。
单独使用的时候, ++ 和 -- 无论是放在变量的前边还是后边,结果是一样的。
参与操作的时候,如果放在变量的后边,先拿变量参与操作,后拿变量做 ++ 或者 -- 。
参与操作的时候,如果放在变量的前边,先拿变量做++或--,后拿变量参与操作。
三元运算符(理解)
数据输入(应用)
分支结构之if语句
if语句格式1:
if语句格式2:
if语句格式3:
三种循环的区别:
(1) for循环和while循环先判断条件是否成立,然后决定是否执行循环体(先判断后执行);
(2) do…while循环先执行一次循环体,然后判断条件是否成立,是否继续执行循环体(先执行后判断)。
for和while的区别:
(1)条件控制语句所控制的自增变量,因为归属for循环的语法结构中,在for循环结束后,就不能再次被访问了;
(2)条件控制语句所控制的自增变量,对于while循环来说不归属其语法结构中,在while循环结束后,该变量还可以继续使用。
死循环格式:
(1) for(;;){}
(2) while(true){}
(3)do{}while(true);
数组定义格式
概念:数组(array)是一种用于存储多个相同类型数据的存储模型
数组的定义格式:
(1)格式1:数据类型[]变量名,例如:int[]arr。定义了一个int类型的数组,数组名是ar r。
(2)格式2:数据类型变量名[],例如:int a rr[]。定义了一个int类型的变量,变量名是arr数组。
数组初始化之动态初始化
初始化:就说为数组中的数组元素分配内存空间,并为每个数组元素赋值。
数组初始化类型:动态初始化、静态初始化
动态初始化:初始化时只指定数组长度,由系统为数组分配初始值。
动态初始化格式:数据类型[]变量名= new数据类型[数组长度],例如:int[]arr = new in
t[3]
示例:
public class ArrayDemo{
public static void main(String[] args){
int[] arr = new int[3]
/*
左边:
int:说明数组中的元素是int类型
[]:说明这是一个数组
arr:这是数组的名称
右边:
new:为数组申请内存空间
int:说明数组中的元素类型是int类型
[]:说明这是一个数组
3:数组长度,其实就说数组中的元素个数
}
}
数组初始化之静态初始化
静态初始化:初始化时指定每个数组元素的初始值,由系统决定数组长度。
格式1:数据类型[]变量名= new数据类型[]{数据1,数据2,数据3,…},例如:int[]a rr = new int[ ]{1, 2, 3};
格式2:数据类型[]变量名={数据1,数据2,数据3,…},例如:int[]arr = {1, 2,3};
方法的定义和运用:
public class MethodDemo
{
public static void main(String[] args)
{
//调用方法
isEvenNumber();
}
//需求:定义一个方法,在方法中定义一个变量,判断该数据是否是偶数
public static void isEvenNumber()
{
//定义变量
int number = 10;
number = 9;
//判断该数是否是偶数
if(number%2 ==0)
{
System.out.println(true);
}
else
{
Systm.println(false);
}
}
}
定义方法时需要注意:
明确返回值类型:主要是明确方法操作完毕之后是否有数据返回,如果没用,写void;如果有,写对应的数据类型;
明确参数:主要是明确参数的类型和数量
调用方法时需要注意:
void类型的方法可以直接调用;
非void类型的方法,推荐用变量接收调用;
方法重载
方法重载概念:方法重载指同一个类中定义的多个方法之间的关系,满足下列条件的多个方法相互构成重载:
(1)多个方法在同一个类中;
(2)多个方法具有相同的方法名;
(3)多个方法的参数不相同,类型不同或者数量不同。
方法重载特点:
(1)重载仅对应方法的定义,与方法的调用无关,调用方式参照标准格式;
(2)重载仅针对同一个类中方法的名称与参数进行识别,与返回值无关,换句话说不能通过返回值来判断两个方法是否相互构成重载。
方法的参数传递
面向对象基础
类和对象
1.什么是对象:万物皆对象,客观存在的事物皆为对象。
2.什么是对象的属性:对象具有的各种特征,每个对象的每个属性都拥有特定的值。
3.什么是对象的行为:对象能够执行的操作。
4.什么是类:类是对现实生活中一类具有共同属性和行为的事物的抽象,确定对象将会拥有的属性和行为。类是JAVA程序的基本组成单位。
类的特点:
(1)类是对象的数据类型:
(2)类是具有相同属性和行为的一组对象的集合。
5.类和对象的关系:类是对象的抽象,对象是类的实体。
6.类的组成:属性和行为。
属性:在类中通过成员变量来体现(类中方法外的变量)
行为:在类中通过成员方法来体现(和前面的方法相比去掉static关键字即可)
类的定义:
成员变量和局部变量的区别:
封装
private关键字
作用:private是一个关键字;它可以修饰成员(成员变量和成员方法);作用是保护成员不被别的类使用,被private修饰的成员只能在本类中才能访问。
使用:针对private修饰的成员变量,如果需要被其他类使用,应提供相应的操作。
(1) 提供 get变量名()方法,用于获取成员变量的值,方法用public修饰;
(2)提供set变量名(参数)方法,用于设置成员变量的值,方法用public修饰。
封装
1.封装概述:封装是面向对象三大特征之一(封装、继承、多态),是面向对象编程语言对客观世界的模拟,客观世界里成员变量都是隐藏在对象内部的,外界是无法直接操作的。
2.封装原则:将类的某些信息隐藏在类内部,不允许外部程序直接访问,而是通过该类提供的方法来实现对隐藏信息的操作和访问成员变量private,提供对应的getXxx() / setXxx()方法。
3.封装优点:通过方法来控制成员变量的操作,提高了代码的安全性。把代码用方法进行封装,提高了代码的复用性。
标准类的制作
(1)成员变量:使用private修饰
(2)构造方法:提供一个无参构造方法、提供一个带多个参数的构造方法。
(3)成员方法:提供每一个成员变量对应的se tXxx()/getXxx();提供一个显示对象信息的sh ow()。
(4) 创建对象并为其成员变量赋值的两种方式:无参构造方法创建对象后使用setXxx()赋值;使用带参构造方法直接创建带有属性值的对象。
例:
public class Student{
// 成员变量
private String name;
private int age;
// 构造方法
public Student() {}
public Student(String name, int age){
this.name = name;
this.age = age;
}
// 成员方法
public void setName(String name){
this.name = name;
}
public String getName(){
return name;
}
public void setAge(){
this.age = age;
}
public int getAge(){
return age;
}
public void show(){
System.out.println(name + "," + age);
}
}