什么是Java编程语言

Java开发的环境搭建

JDK 安装完成后 用CMD→Java→Java -version 查看安装的版本信息

JDK安装目录介绍:

配置环境变量:使系统可以使用Java的一些控制命令
计算机→属性→高级系统设置→高级→环境变量→选中变量名ComSpec→新建→变量名:JAVA_HOME→变量值:JDK的安装目录地址(C:\Program Files\Java\jdk1.7.0_80)→确定→找到变量名path双击打开→在变量值最后加一个;%JAVA_HOME&\bin(C:\Program Files\Java\jdk1.7.0_80\bin)→确定→重新打开CMD输入Javac测试是否配置变量成功


Java 程序入门
源代码:程序员编写的代码文件,Java源代码文件后缀为.java
字节码:二进制代码,由源代码编译产生。(大小写一定要区分)
public class hell{
public static void main(String[] args){
System.out.println("自定义");
}
}
源代码:把源代码转换成字节码的过程叫编译。
编译工具:javac 命令
使用: Javac 文件名.java
结果:会得到一个同名的 .class文件

运行:让计算机执行你的字节码
解释工具:Java class文件名
java的基础语法
public class Hello{ 模块名(一个类就是一个模块)
public static void main( String[] args ){ 程序入口
System.out.println( "今天学习java编程很快乐!" );
}
}
Java Hello ---> 让jvm 执行 Hello 模块,jvm会从程序入口开始执行你的代码,程序入口写法是固定的,如果jvm找不到入口,则会报错。
一个源代码可以包含多个类(这些类中只有一个叫主类,用public 修饰的的类,主类名必须和源代码的名字相同)

注意:每个类都是相互独立的,编译 Hehe.java 会同时产生 每个类的字节码,这些字节码可独立运行
注释
起到解释与说明的作用:
单行注释:// 代码
多行注释:/*内容*/
文档注释:/**内容*/
字面量
字符串:用" "把内容包括起来
整数:一串数字为整数
浮点数:就是一串小数
字符:用' '把内容包括起来
布尔值:true false

关键字
已经被java语言使用过的单词,具备一定的语法含义,关键字是小写的,高级开发工具中会有特定的颜色,不能使用关键字作为你的类名、变量名、方法名。

变量
变量是存放数据的容器,在内存中对应一块小空间,为了方便访问这块空间,需要为这块空间取一个名字,这个名字就是变量名,不同的数据需要不同的数据类型。
定义变量的语法:
数据类型 变量名=值;
注意:java 是一门强类型语言,定义变量必须声明其数据类型,并且所赋予值必须是变量的类型。
变量的命名规则:
1、由数字、 字母 、下划线 、$ 组成
2、数字不能开头
3、不能使用关键字
4、类名首字母要大写 变量名要小写
5、变量名如果有多个单词组成,应该使用驼峰命名法:多个单词组合语句中每个单词首字母要大写
数据类型
java语言中有8大基本数据类型
字节:byte 最大两位数
短整型:short 最大四位数
长整型:long 默认是int类型,数字最后加一个L去掉int位数的范围限制
整数:int (integer) 最大十位数
小数:float(单精度)默认是double类型,数字最后加一个F去掉double限制、double(双精度)
字符:char
布尔:boolean
测试每个数据类型的最大与最小范围,注意字母大小写!

数据类型转换:
把高精度的值 赋值给 低精度的变量,可能会丢失精度。
数据类型 变量名=(与前面同等的数据类型)值;
把低精度的值赋值给高精度的变量

运算符:
1、赋值运算符 =
2、算术运算符 + - * / %
3、关系运算符> < >= <= == !=
4、逻辑运算符 && || !
5、复合赋值运算符 += -= *= /= %=

6、自增++ 、自减-- 当赋值时或者输出时自增自减运算符必须在前才能运算!
7、三目运算符 ?

8、位运算 >> 、 <<
流程控制:
选择控制:
if:

Switch……case、for、while、do……while:

函数:

计算圆与三角形面积

return函数的使用

数组:用于存放一组相同数据类型的数据集合

导入工具包

向数组中添加数据

冒泡排序:按数据大小排序

选择排序

JAVA 面向对象

创建对象: 类名 对象名=new 类名();
构造器:构造器也叫构造方法
作用:创建对象、为属性赋值
特点:构造器本质上是一个方法
构造器的名字后类名必须一致
构造器没有返回值类型
一个类如果程序员没有自己定义构造系统会提供一个无参构造器,一旦程序员自己定义了有参数构造器,系统将不再提供无参构造。
构造器不能显示调用,只能new
生成构造器的快捷方式:Alt+Shift+s

构造器重载:多个构造器并存,通过参数情况加以区分
参数区分方式:参数的个数
参数的类型
参数的顺序

保存数组


成员与静态
成员方法与成员属性必须通过该类的对象来调用。
静态方法和静态属性 通过类名调用即可,添加static的方法或属性就是静态的;且静态属性在最后赋值时之前的所有值都会变为统一的值。
静态方法中不能调用成员方法与成员属性,反之成员中可以调用静态方法与静态属性;如果一定需要在静态中调用成员,可以在静态中创建一个对象来调用。
调用Math静态数学计算的一部分方法:

多个类连接到一起的列子https://pan.lanzou.com/1464193/
针对数据类型的一些错误!
引用数据类型如果不赋值,默认值为null!
基本数据类型赋值,默认值为:
int、long、byte、short 默认为0
float 、double 默认为0.0
char 默认为空白符
boolean 默认为false
运行后报错:java.lang.NullpointerException是空指针异常
对一个值为空 ,进行了引用或者是调用了属性、方法时出现,这时应该找出输出的变量名所赋值是不是有错误!

面向对象三大特征:
1、封装:实现信息隐藏,提高代码的安全性。
Ctrl+Shift+O快速导入同一个项目下其他包(直接在本包名下写import 包名.类名也可以实现)

软件包:package 用来管理源代码,降低程序的复杂度,便于查看项目的结构
注意:被使用的类不在当前类同项目名下
封装权限:
private私有权限:在属性的数据类型前或方法的返回值前添加private把这个属性或方法隐藏掉,其他类中无法使用。
public公开权限:在属性的数据类型前或方法的返回值前添加public这个属性或方法在同一个项目下所有的包都可以访问。
protected继承权限:子类中可以访问,可以跨包访问。
使用原则:在没有要求的情况下
属性全部私有化都用:private
方法全部公开都用:public
需要在子类中访问的都用:protected
注:如果需要给私有权限的属性赋值,就需要给这个属性添加一个存值(set)和取值(get)的方法,就是添加一个public公开权限的方法参数中把这个属性放进去。可使用快捷键Alt+Shift+s如下图:

使用存值(set)和取值(get)的方法:

2、继承:实现代码复用,提高代码的重用率。(特别是当之前版本的类不能更改代码的时候用!)
给子类继承构造器时的快捷键Alt+Shift+s

给父类继承子类:子类名 extends 父类名
当父类属性用private权限时, 调用父类的有参构造器,初始化继承来的属性的方法

当父类属性用protected权限时, 调用父类的有参构造器,初始化继承来的属性的方法

注:子类的构造器会无条件的调用父类的构造器,所以创建父类构造器时必须要有一个无参构造器!
子类添加属性且权限是private私有权限时,赋值的使用方法

子类方法覆盖父类方法的同时调用父类方法时,返回值类型、方法名、参数要一样,且权限不能比父类的权限严格!不能抛出更宽泛的异常。

3、多态:提高代码的灵活性,可扩展性。
网友评论