Java学习笔记,
Java学习笔记,
java基础
java简介
java是面向对象的语言,是由Sun公司在95年出品的,2009年Sun公司被ORACLE公司收购。
java SE是基础部分,java EE是java的企业版,相比java SE,java EE增加了JSP、EJB等技术。
JVM:Java虚拟机,JDK:Java开发工具包,JRE:Java运行环境。
Java开发环境搭建
- 安装JDK
- 配置环境变量
- JAVA_HOME配置JDK安装路径
- PATH配置JDK命令文件的位置(bin目录)
- CLASSPATH配置类库文件的位置(lib目录)
利用文本文件编辑Java程序
- 用文本文件去编写Java的源代码文件,源代码文件以.java结尾。
- 用编译器(javac命令),对源代码文件进行编译的操作。把它编译成以.class结尾的字节码文件,字节码文件与平台无关,实现跨平台。
- 在不同的平台中用不同的解释器(java命令),去解释运行字节码文件,就可以得到程序运行的结果。
Eclipse
Eclipse开发Java程序分为四步
Java基本语法
约定俗成的命名规则
变量
基本数据类型 | 默认值 | 存储格式 | 数据范围 |
---|---|---|---|
short | 0 | 2个字节 | -32768到32767 |
int | 0 | 4个字节 | -2147483648到2147483647 |
byte | 0 | 1个字节 | -128到127 |
char | |||
long | |||
float | |||
double | |||
boolean |
Java中变量需要先声明再使用。
Java运算符
算术运算符
+、-、*、/、%、++、–。
赋值运算符
=、+=、-=、*=、/=、%=。
比较运算符
,<,==,!=。(==和!=的操作数可以是数值类型和引用类型)
逻辑运算符
&&、||、!、^(一真一假结果为真,其他的都是假)
条件运算符
布尔表达式?表达式1 : 表达式2
运算符的优先级
多总结就行了
Java控制语句
条件控制语句
if(条件){
条件成立时执行的代码
}
if(条件){
代码块1
}
else{
代码块2
}
if(条件1){
代码块1
}
else if(条件2){
代码块2
}
...
else {
代码块n
}
switch(表达式){
case 值1:
代码块1
break;
case 值2:
代码块2
break;
...
default:
默认执行的代码块
}
循环控制语句
while(条件){
代码块
}
do{
代码块
}while(条件);
跳转语句
break、continue
Java数组
数组定义和初始化
声明数组:
数据类型[ ] 数组名; //或者: 数据类型 数组名[ ];
分配空间:
数组名 = new 数据类型 [ 数组长度 ];
声明的同时初始化
int [] ages = {12,18,9,33,45,60}; //声明并初始化了一个数组,它有6个元素
char [] symbol = new char[10] //声明并分配了一个长度为5的char型数组
数组遍历
int [] ages = {12, 18, 9, 33, 45, 60};
for(int i = 0; i < ages.length; i++){ //ages.length是获取数组的长度
System.out.println("数组中第"+(i+1)+"个元素是 "+ages[i]); //数组下标是从零开始,一定要注意
}
for(元素类型 元素变量:遍历对象){
执行的代码
}
Java方法
方法的定义
访问修饰符 返回值类型 方法名(参数列表){
方法体
}
参数和参数列表
返回值
Java类和对象
- 对象是一个具体的,确定的物体。
- 类是封装对象的属性和行为的载体,反过来说具有相同属性和行为的一类实体被称为类。
public class 类名{
//定义属性部分(成员变量)
属性1的类型 属性1;
属性2的类型 属性2;
...
//定义方法部分
方法1;
方法2;
...
}
对象
要使用一个对象,首先要先创建一个对象。
类名 对象名 = new 类名();
构造方法
1.构造方法的名称与类名相同,并且没有返回值。
2.如果在定义类的时候没有写构造方法,系统会默认生成一个无参构造方法,不过这个构造方法什么也不会做。
3.当有指定的构造方法时,系统不会再添加无参构造方法。
4.构造方法的重载:方法名相同,但参数不同的多个方法,调用时会自动根据不同的参数选择相应的方法。
Java封装
面向对象有三大特性:封装、继承、多态。
封装的好处:
- 隐藏类的实现细节
- 让使用者只能通过事先定制好的方法来访问数据,可以方便地加入控制逻辑,限制对属性的不合理操作
- 便于修改,增强代码的可维护性
如何实现封装:
包
Java访问修饰符
访问修饰符 | 本类 | 同包 | 子类 | 其他 |
---|---|---|---|---|
private | √ | |||
默认 | √ | √ | ||
protected | √ | √ | √ | |
public | √ | √ | √ | √ |
this关键字
使用this.属性操作当前对象的属性,this.方法调用当前对象的方法。
内部类
内部类的主要作用有:
使用方法:
静态内部类:
Java继承
语法
class 子类 extend 父类{
...
}
子类重写父类的方法:
重写的方法一定要与原父类的方法语法保持一致,比如返回值类型,参数类型及个数,和方法名都必须一致。
继承的初始化顺序
系统会先创建父类对象,在创建子类对象,先初始化属性,在调用构造函数
Java多态
父类的引用指向子类的对象
父类调用子类的对象的继承方法或重写方法
多态引用类型转换
例子:
Dog a = new Dog();
Animal b = a; //自动类型提升 向上类型转换(无风险)
/*
Dog c = b;
//将父类引用转换成子类引用,编译器不允许这样做
*/
Dog c = (Dog)b; //在父类前加上小括号,里面加上子类类型,实现强制转换
//向下类型转换
/*
Cat d = (Cat)b;
//虽然编译器不会报错,但运行会出问题,因为b是指向Dog类的,它们是不同类型的对象,这里就存在风险
*/
抽象类
从多个具有相同特征的类中抽象出一个抽象类,以这个抽象类作为子类的模板,从而避免了子类设计的随意性,同是抽象类也规定和约束了子类实现哪些方法。
相关文章
- 暂无相关文章
用户点评