一、程序设计发展史
40-50年代:机器语言,由二进制发出各种程序指令
60年代: C语言,其他面向过程语言
70年代: C++,VB等介于面向过程与面向对象之间
90年代: Java,PHP,JavaScript等,面向对象
面向对象语言 是符合人的思维逻辑,对一些事物进行程序化编写
二、Java 语言
面对程序设计(OOP),有两个重要概念“类”和“对象”
类:对一类事物抽象的描述,它包含这类事物的特征(类的属性)和行为(类的方法),例如电脑,学生,人类等
对象:实际存在该类事物的某个个体,是一个具体的实例
package com.j1901.mean;
public class Demo {
public String name;
public int age;
private String sex = "男";
/**
* 定义行为(方法)
* 语法:
* 访问修饰符void 方法名(){
* }
*/
public void eat(){
System.out.println(name + "正在吃饭");
}
/**
* 输出基本信息
*/
public void showInfo(){
System.out.println("姓名" + name + "年龄" + age + "性别" + sex);
//定义一个学生姓名性别地址
}
}
package com.j1901.mean;
public class Demo1 {
public static void main(String[] args){
//通过类 创建对象
//语法:类名 对象名 = new 类名();
Demo people = new Demo();
//给对象赋值
people.name = "程冲";
people.age = 22;
//Demo.sex 私有属性 不能被其他任何类访问,只能自己访问
//访问访问 对象名.方法名()
people.eat();
System.out.println("输出年龄:" + people.age);
System.out.println("性别:");
//访问ShowInfo
people.showInfo();
}
}
Java的注释
单行注释 // 快捷键 Ctrl + /
多行注释 /* 代码 */
文档注释,一般注释类,方法,属性
/**
*/
当编写文档注释时,jdk可以自动生成 对应类API
1、通过命令 在当前目录下 cmd->javadoc 类名 或者也可以生成整个包的文档注释
默认在当前目录下 javadoc 参数
2、通过 Myeclipse生成,在工具类中 -> project ->Genneric -> javadoc 选择项目或者包生成整个文档,默认在项目的doc中创建index.html
文档注释的默认注释:
- @author 文档作者
- @version 版本
- @docroot 表产生文档的根路径
- @param 表参数的类型
- @return 表参数的返回值
- @see 表参见某个文档,指文档来源
- @exception 指抛出的异常
- @throw 指抛出异常的名称
Java的分隔符
1、 ; 每句话结束都必须用分号结束,可以若干个分号。
2、每一个语句块都需要用花括号{};{}表示一个方法块,例如:方法,类,语句块,静态语句块
3、空格 换行 和分号 可以任意多个 不会被JVM编译报错
Java标识符
用于标识一个特定的元素,用于给某个元素命名。例如:类名 方法名 属性名等 尽量要求“见名知意”
要求:
1.由字母 数字 下划线 $符组成;其中不能以数字开头
2.标识符不能是关键字;
3.标识符区分大小写
4.定义类的标识符:首字母大写后面首字母大写(驼峰命名法)
5.定义方法名:首字母小写,后面首字母大写
6.定义属性(变量)名 与方法名一样 私有变量建议 _ 开头。
Java关键字
1.Java中用于特定意义,做一些专门用法的字符,称为关键字keyword
2.所有关键字都是小写,一共是50个关键字 (48+2 goto const)
a) 访问修饰符
public | 共有的 | protected | 受保护的 |
---|---|---|---|
private | 私有的 | ||
b)类,方法和变量修饰符
Abstract | 抽象 | Class | 类 |
---|---|---|---|
Extends | 继承的关键字 | Synchronized | 线程同步 |
Interface | 接口的关键字 | Volatile | 线程的较轻同步 |
Implements | 实现接口的关键字 | Transient | 瞬时状态 |
Native | 本地的 | Final | |
New | 创建对象 | Strictfp | |
Static | 静态的 |
c)程序控制符
Break | 跳出循环 | Instanceof | 判断对象类型 |
---|---|---|---|
Continue | 跳出本次循环 | Switch | 选择 |
For | for循环 | Case | 选择的分支 |
Do | If | 条件判断 | |
While | 循环 | Else | 条件判断 |
Default | 默认 | Return | 返回方法 ,返回对象 |
d)异常处理
Try | 尝试捕获异常 | Cath | 捕获异常 |
---|---|---|---|
Finally | 最终执行的代码块 (无论是否有异常) | Throw | 抛出一个异常 |
Throws | 定义要抛出的异常 |
e)包相关
Import 导入指定的包和类
Package : 定义类所在的包的位置
f)变量引用
Super 超类定义 父类
This 表示当前
Void 方法的返回值为空 的 定义
g)保留字
Goto 、Const
三、Java的数据类型
Java是一门强类型语言(在JDK10以后也支持弱类型变相声明)
Java数据类型分为两大块
1.基本数据类型(简单数据类型,不提供任何与该数据类型相关的行为和方法)
1.8大基本数据类型。
数据类型 | 字节(1-8个位bit) | 范围 |
---|---|---|
byte | 1 | -2的7次方~2的7次方-1 |
short | 2 | -2的15次方~ 2的15次方-1 |
int | 4 | -2的31次方~ 2的31次方-1 |
long | 8 | …… |
float | 4(单精度,存小数) | …… |
double | 8(双精度) | …… |
char | 2个字节 | …… |
Boolean | 1 | True/False |
一字节等于8位。
2.引用数据类型(包装类型,复杂数据类型)
package com.j1901.mean01;
public class Text2 {
public static void mian(String[] args){
//定义变量
int num1 = 1001; //分配一个内存为4个字节的空间,里面存放的值为1001
float f1 = 12.23F; //Java中默认将小数作为double类型
double d1 = 23.35; //基本数类型转换问题
char c1 = 'a'; // 字节 只能存放一个字符
System.out.println((int)c1);//字符和int可以相互转换
int num4 = 43;
System.out.println((char)num4);
// boolean 布尔
boolean flag1= true;
boolean flag2 = false;
System.out.println(flag1);
// 问题: 字符和字符串有什么关系 ?
// 1、字符是基本数据类型 字符串是引用数据类型 , 字符串中包含如果个字符。
// 2 字符是单引号,字符串是双引号
char c5='\n'; // \表示java中的转义字符, \n 表示换行 \t 表示制表符(tab)
}
}
Java的数据类型转换
程序计算式,必须保证数据类型一致,如果数据类型不一致需要转化
从底类型到高类型是自动转化,反之,高类型到低类型是强制转换
int a = 1001;
long b = a;
int c = (int)b;
数据类型从低到高排列:byte/short/char/int/long/float/double
Java的变量
变量:在程序运行过程中,其值可以改变的量
全局变量
定义在方法外(就是属性)
局部变量
定义在方法里面
package com.j1901.bianliang;
public class Test1 {
public int age;
public short ss;
public byte bb;
public long ll;
public float ff;
public double dd;
public boolean flag;
public char cc;
public static void main(String[] args) {
//变量: 在程序运行过程中,其值可以改变的量
// 分为 全局变量 和 局部变量
// 全局变量: 定义在方法外面 (就是属性)
// 局部变量: 定义在方法的里面
int num1 =1; // num1 就是变量
num1=2;
num1=22;
System.out.print(num1);
//全局变量
//age=18; 由于age属于对象的属性 ,需要创建对象才可以调用
Test1 test1 = new Test1();
test1.age=18;
// 可以连续定义 相同类型的变量
int a=35 ,b=36;
System.out.println(a+b);
//常量 :
System.out.print(123F); // 直接常量
//间接常量 final 修饰的变量都是常量 ,其值不能改变
final int num2=1001;
// num2=1002;
// 8个基本数据类型的默认值
// int 0
int num3;
// System.out.print(num3); // 局部变量 必须赋值才可以使用 ,全局变量不用赋值 就可以使用,
// 全局变量基本数据类型的默认值 分别
System.out.println("基本数据类型的默认值");
System.out.println(test1.age);// 0
System.out.println(test1.ss);// 0
System.out.println(test1.bb);// 0
System.out.println(test1.ll);// 0
System.out.println(test1.ff);// 0.0
System.out.println(test1.dd);// 0.0
System.out.println(test1.cc);// 空格
System.out.println(test1.flag);// false
}
}