一篇文章让你从JAVA零基础入门`OOP`编程12-16

一篇文章让你从JAVA零基础入门OOP编程

前言:

此文为玄子,复习ACCP-S1课程后,整理的文章,文中对知识点的解释仅为个人理解。

配套PPT,站点源码,等学习资料
请添加图片描述

一、预科

1.1 JAVA 介绍

Java 是 Sun Microsystems 于1995年推出的高级编程语言

1.1.1 JAVA 之父

詹姆斯·高斯林(James Gosling)是一名软件专家,1955年5月19日出生于加拿大,Java编程语言的共同创始人之一,一般公认他为“Java之父”。

请添加图片描述
请添加图片描述

1.1.2 JAVA 的核心优势

跨平台是 Java 语言的核心优势,赶上最初互联网的发展,并随着互联网的发展而发展,建立了强大的生态体系,目前已经覆盖 IT 各行业的“第一大语言”,是计算机界的“英语”。

1.1.3 JAVA 各版本的含义

​ JavaSE(Java Standard Edition):标准版,定位在个人计算机上的应用

​ JavaEE(Java Enterprise Edition):企业版,定位在服务器端的应用

​ JavaME(Java Micro Edition):微型版,定位在消费性电子产品的应用上

1.1.4 JAVA 运行机制

请添加图片描述

计算机高级语言的类型主要有编译型和解释型两种,而Java 语言是两种类型的结合。

1.1.4 JVM、JRE 和 JDK

请添加图片描述

​ Java Virtual Machine (JVM) :用于执行字节码的”虚拟计算机”。不同的操作系统有不同版本
JVM,屏蔽了底层运行平台的差别,是实现跨平台的核心。

​ Java Runtime Environment (JRE) 包含:Java 虚拟机、库函数等。

​ Java Development Kit (JDK)包含:JRE,编译器和调试器等。


1.2 JAVA 开发环境搭建

1.2.1 下载 JDK

ORACLE官网:

https://www.oracle.com/java/technologies/javase/javase8u211-later-archive-downloads.html

请添加图片描述

下滑找到 Windows x64 安装程序,后的链接下载安装包。

1.2.2 安装 JDK

安装图中指引一直下一步就可以了

!!!中间可以更改安装位置,但不建议更改,为了方便后期配置环境变量。

请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述

1.2.3 配置环境变量

  1. 右键此电脑属性

    请添加图片描述

  2. 高级系统设置

    请添加图片描述

  3. 点击右下角环境变量

    请添加图片描述

  4. 新建环境变量

    请添加图片描述

  5. 变量名:

    JAVA_HOME

    变量值:java JDK 安装路径

    默认为:

    C:\Program Files\Java\jdk1.8.0_341

    请添加图片描述

    请添加图片描述

    设置完成后点击确定

  6. 再次点击新建

    变量名:

    CLASSPATH

    变量值:

    .;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar;

    !!!变量值是固定的,注意开头为英文字符点

    请添加图片描述

    请添加图片描述

  7. 下滑找到Path双击变量值进入设置

    请添加图片描述

    然后点击右上角新建,值为 JDK 安装的bin目录

    默认为:

    C:\Program Files\Java\jdk1.8.0_341\bin

    请添加图片描述

    请添加图片描述

    !!!请注意这个值和 JAVA_HOME 是不一样的,要进入到bin目录的路径后在复制

  8. 然后继续添加两条变量

    变量固定分别为:

    %JAVA_HOME%\bin

    %JAVA_HOME%\jre\bin

    请添加图片描述

  9. 这里直接点击编辑本文,在变量尾部一次添加完效果是一样的
    请添加图片描述

    变量值:

    C:\Program Files\Java\jdk1.8.0_341\bin;%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin;

1.2.4 检验环境变量

  1. 键盘按下Win + R输入cmd后按回车

    请添加图片描述

  2. 在窗体输入:

    Java -version

!!!java 后面有一个空格

  1. 显示 java version “1.8.0_341” 即为环境变量配置成功

    后面的 1.8.0_341 就是所安装 java 的 JDK 版本

    请添加图片描述

  2. 恭喜你!到这里 JDK 的下载、安装、配置环境变量就已经全部完成了


1.3 编写第一个 JAVA 程序

1.3.1 编写 JAVA 代码

  1. 在桌面上右键新建文本文档

    请添加图片描述

  2. 将新建的文本文档更名为ChangeTheWorld

    请添加图片描述

  3. 如果你新建的文本文档没有显示.txt后缀的话需要在文件资源管理器中设置显示

    请添加图片描述

  4. 鼠标双击打开文本文档输入以下代码

    请添加图片描述

public class ChangeTheWorld {
    public static void main(String[] args) {
        
        System.out.println("Change The World!");

    }
}

class 后面的代码要和文件名一致

!!!全文都是在英文输入法下编写

1.3.2 执行 JAVA 程序

  1. 将文件名后缀修改为.java例如:ChangeTheWorld.java

    请添加图片描述

  2. 将修改后的 Java 文件复制到任意磁盘根目录

    请添加图片描述

  3. 点击文件地址栏输入cmd回车

    请添加图片描述

  4. 分别输入javacjava代码执行编译,下面显示的Change The World即为我们编写的 Java 输出语句所输出的代码

    请添加图片描述

    javac ChangeTheWorld.java

    java ChangeTheWorld

  5. 到这里你已经可以独立编写,编译 Java 代码了,后面我们会在学习一些计算基础知识。


1.4 电脑快捷键

按键说明
Ctrl + A全选
Ctrl + C复制
Ctrl + V粘贴
Ctrl + X剪切
Ctrl + Z撤销
Ctrl + Y撤回
Ctrl + S保存
Alt + F4关闭窗体
Windows + R运行
Windows + L快速锁屏
Windows + E资源管理器
Ctrl + Shift + ESC任务管理器

1.5 DOS命令

1.5.1 打开CMD的方法

  1. 开始 > 系统 > 命令提示符

  2. 按下 Win + R 输入 cmd 打开控制台(推荐使用)

  3. 在任意的文件夹下面,按住 Shift + 鼠标右键点击,在此处打开命令行窗口

  4. 资源管理器的地址栏前面加上 cmd 路径

    管理员方式运行:选择以管理员方式运行

1.5.2 常用DOS命令

命令说明备注
C:选择盘符盘符名称加冒号
dir查看当前目录下的所有文件
cd /d C:盘符切换Change Directory
cd 文件名\文件名目录切换
cd…返回上一级目录
cls清理屏幕Clear Screen
exit退出
ipconfig查看电脑IP
clac 计算器
mspaint 画图
notepad 记事本
打开程序
ping 网址ping命令
md 文件名创建文件夹Make Directory
cd> a.txt创建文件注意文件后缀
del a.txt删除文件注意文件后缀
rd 文件名移除目录Remove Directory

1.6 计算机语言发展史

1.6.1 一代语言

机器语言

  • 我们都知道计算机的基本计算方式都是基于二进制的方式。

  • 二进制:010111001010110010110100

  • 这种代码是直接输入给计算机使用的,不经过任何的转换!

十进制二进制
11
210
311
4100
5101
6110
7111
81000
1610000
32100000

1.6.2 二代语言

汇编语言

  • 解决人类无法读懂机器语言的问题

  • 指令代替二进制

目前应用:

  • 逆向工程
  • 机器人
  • 病毒

1.6.3 三代语言

  • 高级语言

  • 大体上分为:面向过程面向对象两大类。

  • C语言是典型的面向过程的语言。C++、JAVA是典型的面向对象的语言。

各种语言:

  • C

  • C++

  • JAVA

  • C#

  • Python

    编程语言鼻祖C语言 后有C++改良为面向对象语言 再有JAVA

    C#是微软基于JAVA研发的.NET平台软件


1.7 安装 JAVA 开发工具

1.7.1 Intellij IDEA 开发工具

Intellij IDEA 是目前主流的Java 开发工具,但是由于版权原因这里不过多介绍。

Intellij IDEA官网:https://www.jetbrains.com/idea/


二、JAVA 基础

2.1 使用 IDEA 编写 JAVA 程序

2.1.1 Change The World

package CH01_JAVABase;
//Change The World!
public class XZ01_ChangeTheWorld {
    public static void main(String[] args) {
        System.out.println("Change The World!");
        //Change The World!
    }
}
public class XZ01_ChangeTheWorld {}
// public 关键字
// XZ01_ChangeTheWorld 类名与文件名要完全一样
public static void main(String[] args) {}
// main( )方法四要素必不可少 public static void main
// main( )方法是 Java 程序执行的入口点
System.out.println("Change The World!");
// 从控制台输出信息
代码语句说明快捷语句
public static void main(String[] args) { }Main函数,程序主入口main/psvm
System.out.println( );输出语句sout

2.2 注释

注释不会出现在字节码文件中,即Java 编译器编译时会跳过注释语句。

2.2.1 单行注释

单行注释使用//开头。

2.2.2 多行注释

多行注释以/*开头以*/结尾。注意,多行注释不能嵌套使用。

2.2.3 文档注释

文档注释以/** 开头以 */结尾,注释中包含一些说明性的文字及一些 JavaDoc 标签(后期写项目时,可以生成项目的API)

2.2.4 演示案例

package CH01_JAVABase;
//注释

/**
 * XZ04_Annotate 类(我是文档注释)
 *
 * @author 玄子 (作者)
 * @version 1.0 (版本)
 */
public class XZ04_Annotate {
    //我是单行注释
    public static void main(String[] args) {
        System.out.println("Change The World!");
    /*
        System.out.println("Change The World!");
        System.out.println("我是多行注释!");
    */
    }
}
注释语法注释名称快捷键
//单行注释Ctrl + /
/* */多行注释
/** */文档注释
文档注释参数描述
@author作者名
@version版本号
@since指明需要最早使用的jdk版本
@param参数名
@return返回值情况
@throws异常抛出情况

JavaDoc命令是用来生成自己API文档的

JavaAPI帮助文档

Java8API帮助文档


2.3 基本数据类型

Java 数据类型分为两大类:基本数据类型(primitive data type)和引用数据类型(reference data type)。

请添加图片描述

2.3.1 整型

package CH01_JAVABase;

//八大数据类型
public class XZ02_DataType {
    public static void main(String[] args) {
        int num1 = 1;
        byte num2 = 1;
        short num3 = 1;
        long num4 = 1L;
        // long 的数值后面需要加大写字母 L
        //整型
    }
}
类型占用存储空间表数范围
byte1 字节-27 ~ 27-1(-128~127)
short2 字节-215 ~ 215-1 (-32768~32767)
int4 字节-231 ~ 231-1 (-2147483648~2147483647) 约21 亿
long8 字节-263~ 263-1

2.3.2 浮点型

package CH01_JAVABase;

//八大数据类型
public class XZ02_DataType {
    public static void main(String[] args) {
        double num5 = 1.1;
        float num6 = 1.2F;
        // float 的数值后面需要加大写字母 F
        //浮点型
    }
}
类型占用存储空间表数范围
float4 字节-3.403E38~3.403E38
double8 字节-1.798E308~1.798E308

2.3.3 字符型

package CH01_JAVABase;

//八大数据类型
public class XZ02_DataType {
    public static void main(String[] args) {
        char ch = 'a';
        char ch = '玄';
        //单字符
    }
}

字符型在内存中占 2 个字节,在 Java 中使用单引号来表示字符常量。例如’A’是一
个字符,它与”A”是不同的,”A”表示含有一个字符的字符串。

char 类型用来表示在 Unicode 编码表中的字符。Unicode 编码被设计用来处理各种
语言的文字,它占 2 个字节,可允许有65536 个字符。

2.3.4 布尔型

package CH01_JAVABase;

//八大数据类型
public class XZ02_DataType {
    public static void main(String[] args) {
        boolean is = false;
        // 只有两个结果 true false
        //布尔型
    }
}

2.4 数据类型转换

八种基本数据类型,除了boolean 类型之外的七种类型是可以自动转化的。

自动类型转换指的是容量小的数据类型可以自动转换为容量大的数据类型。如图下所
示,的实线表示无数据丢失的自动类型转换,而虚线表示在转换时可能会有精度的损失。

请添加图片描述

2.4.1 隐式类型转换(自动类型转换)

可以将整型常量直接赋值给byte、short、char 等类型变量,而不需要进行强制类
型转换,只要不超出其表数范围即可。

package CH01_JAVABase;

//数据类型转换
public class XZ03_TypeConversion {
    public static void main(String[] args) {
        int a = 1;
        double b = a;
        System.out.println(b);
        // b = 1.0
        //隐式数据类型转换,自动转换
    }
}

2.4.2 显示类型转换(强制类型转换)

package CH01_JAVABase;

//数据类型转换
public class XZ03_TypeConversion {
    public static void main(String[] args) {
        double c = 1.2;
        int d = (int) c;
        System.out.println(d);
        // d = 1
        //显式数据类型转换转换变量前加 (转换类型)
    }
}

2.4.3 数据类型转换拓展

package CH01_JAVABase;

//数据类型转换
public class XZ03_TypeConversion {
    public static void main(String[] args) {
        char e = 'a';
        int f = e + 1;
        System.out.println((int) e);
        // 97
        System.out.println(f);
        // 98
        System.out.println((char) f);
        // b
    }
}

注意点:

  1. 不能对布尔值进行转换
  2. 不能把对象类型转换为不相干的类型
  3. 在把高容量转换到低容量的时候,强制转换
  4. 转换的时候可能存在内存溢出,或者精度问题!
  5. 这里的数据类型转换就证明了 char 类型的值本质上还是数字。
  6. ASCII编码表

2.5 变量

2.5.1 变量介绍

package CH01_JAVABase;

//变量
public class XZ05_Variable {
    static String str = "XuanZi";  //类变量
    //成员变量
    int age;  //默认值 0
    String Sex = "男";  //默认值null
    boolean IsNull; //默认值false

    public static void main(String[] args) {
        //局部变量
        int value = 1;
        String name = "玄子";

        //创建类的对象调用方法
        XZ05_Variable variable = new XZ05_Variable();
        System.out.println(name);
        //输出局部变量
        variable.set();
        //调用类方法
        System.out.println(variable.IsNull);
        //实例变量需要创建对象后才能调用
        System.out.println(str);
        //类变量可直接调用
    }

    public void set() {
        String conn = "XuanZiShare";  //局部变量
        System.out.println(age);
        System.out.println(Sex);
        System.out.println(conn);
    }
}
  • 变量(variable):
    • 变量本质上就是代表一个”可操作的存储空间”,空间位置是确定的,但是里面放置什么值不确定
    • Java 是一种强类型语言,每个变量都必须声明其数据类型。变量的数据类型决定了变量占据存储空间的大小
    • 可通过变量名来访问“对应的存储空间”,从而操纵这个“存储空间”存储的值。
  • 注意事项:
    • 每个变量都有类型,类型可以是基本类型,也可以是引用类型
    • 变量名必须是合法的标识符
    • 变量声明是一条完整的语句,因此每一个声明都必须以分号结束

2.5.2 变量的分类和作用域:

变量有三种类型:局部变量、成员变量(实例变量)和静态变量(类变量)

类型声明位置从属于生命周期(作用域)
局部变量方法或语句块内部方法/语句块从声明位置开始,直到方法或语
句块执行完毕,局部变量消失
成员变量类内部,方法外部对象对象创建,成员变量也跟着创建
对象消失,成员变量也跟着消失
静态变量类内部,static 修饰类被加载,静态变量就有效
类被卸载,静态变量消失。

2.6 常量

package CH01_JAVABase;

//常量
public class XZ06_Constant {
    //            final 数据类型 常量名 = 值;
    public static final double PI = 3.14;
    // public static 修饰符,不存在先后顺序
    public static void main(String[] args) {
        System.out.println(PI);
    }
}
  • 常量(Constant):
    • 初始化(initialization)后不能再改变值!不会变动的值。
    • 所谓常量可以理解成一种特殊的变量,它的值被设定后,在程序运行过程中不允许被改变。
    • 常量名一般使用大写字符。

2.7 运算符

计算机的基本用途就是执行数学运算,Java 提供了一套丰富的运算符来操作变量。

2.7.1 一元运算符

2.7.2 二元运算符

2.7.3 赋值运算符


2.7.4 扩展运算符

2.7.5 关系运算符

2.7.6 逻辑运算符

2.7.7 位辑运运算符

2.7.8 条件运算符

2.7.9 字符串连接符

运算符种类符号描述
算术运算符(一元)+,-,*,/,%加,减,乘,除,余
算术运算符(二元)++,–自增,自增
赋值运算符=赋值
扩展运算符+=,-=,*=,/=加等,减等,乘等,除等
关系运算符>,<,>=,<=,==,!=,instanceof大于,小于,大于等于,小于等于,等等于,不等于,实例判断
逻辑运算符&&,||,!,^与,或,非,按位
位辑运运算符&,|,^,~ , >>,<<与,或,非,异或(按位取反),左移(*),右移(/)
条件运算符(三目)? :布尔 ? 条件1 : 条件2
如果布尔结果为 true 那么结果为条件1
字符串连接符+拼接两个字符串

2.8 转义符

2.1.2 println( ) 和 print( ) 的区别

System.out.println("Change The World!");
// 打印完引号中的信息后会自动换行
System.out.println("Change The World!");
// 打印输出信息后不会自动换行 

常用转义符表

转义字符意义ASCII码值(十进制)
\a响铃(BEL)007
\b退格(BS) ,将当前位置移到前一列008
\f换页(FF),将当前位置移到下页开头012
\n换行(LF) ,将当前位置移到下一行开头010
\r回车(CR) ,将当前位置移到本行开头013
\t水平制表(HT) (跳到下一个TAB位置)009
\v垂直制表(VT)011
\代表一个反斜线字符’’092
代表一个单引号(撇号)字符039
"代表一个双引号字符034
?代表一个问号063
\0空字符(NULL)000
\ooo1到3位八进制数所代表的任意字符三位八进制
\xhh十六进制所代表的任意字符十六进制

注意:

  1. 区分,斜杠:“/” 与 反斜杠:“” ,此处不可互换

  2. \xhh 十六进制转义不限制字符个数 ‘\x000000000000F’ == ‘\xF’


2.9 命名规范

package CH01_JAVABase;

//命名规范
public class XZ09_NamingSpecification {
    public static void main(String[] args) {
//		Java 所有的组成部分都需要名字。类名、变量名以及方法名都被称为标识符。
        String name;
        int num;
        double value;
        boolean is;

        String 玄子 = "XuanZi";

        //尽量使用英语单词作为标识符

        //常用命名法
        String studentName = "玄子";
        //驼峰命名法:以小写字母开头,第二个及以后单词首字母大写
        String StudentName = "玄子";
        //帕斯卡命名法:以大写字母开头,第二个及以后单词首字母大写
    }
}

2.9.1 标识符命名规范:

  • 所有标识符应具有实际意义,尽量不要使用 a、b 这样的无意义命名
  • 所有的标识符都应该以字母(A-Z或者a-z),美元符($)、或者下划线(_)开始
  • 首字符之后可以是字母(A-Z或者a-z),美元符($)、下划线(_)或数字的任何字符组合
  • 不能使用关键字作为变量名或方法名
  • 识符是大小写敏感的
  • 合法标识符举例:age、$salary、_value、_1_value
  • 非法标识符举例:123abc、-salary、#abc
  • 可以使用中文命名,但是一般不建议这样去使用,也不建议使用拼音,很Low

2.9.2 常用命名法:

  • 所有变量、方法、类名:见名知意,具有实际意义
  • 类成员变量:驼峰命名法:studentName
  • 局部变量:驼峰命名法:studentAge
  • 常量:以大写字母命名,下划线拼接:MAX_VALUE
  • 类名:帕斯卡命名法:StudentName
  • 方法名:帕斯卡命名法:StudentAge( )
  • 所有方法都带有( )

2.10 包机制

package CH01_JAVABase;

//包机制
public class XZ10_PackageMechanism {
    public static void main(String[] args) {
//        为了更好地组织类,Java提供了包机制,用于区别类名的命名空间。
//        包语句的语法格式为:
//        package pkg1[. pkg2[. pkg3...]];

//        一般利用公司域名倒置作为包名;com.XuanZiShare.www
//        为了能够使用某一个包的成员,我们需要在Java程序中明确导入该包。
//        使用“import”语句可完成此功能
//        import package1[.package2...].(classname|*);
//        *通配符  所有

    }
}

三、流程控制语句

玄子:2022年12月13日

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值