Java程序设计4.28 1-1到1-5

2019-04-28  本文已影响0人  13351

导学

基础知识,先学C语言,第一章会比较快速会把基础语法过一遍,对C语言语法进行复习

本章主要内容

  1. 面向对象程序设计
    2.基本数据类型与表达式
    3.数组
    4.算法的流程控制

1-1 面向对象的程序设计

简要介绍Java语言和面向对象的设计
Java是面向对象的高级语言
C是面向过程,Java是面向对象的设计语言

面向对象就是将客观事物看作具有状态和行为的对象通过抽象找出同一类对象的共同状态和行为,构成类
用程序来模拟这种思维,提高了软件的可重用性和可靠性

面向对象给软件发展带来的好处

可重用性
可靠性

基本特征

抽象封装
继承
多态

java的特点

1995 Sun
1996 JDK1.0
1998 JDK1.2 标准版 企业版 移动版
2004 JDK1.5
2006 JDK1.6

跨平台,不一样的高级语言

image.png

半解释半编译的语言,执行流程是
1.写.java
2.编译器将它编译成二进制.class
3.解释器在虚拟机上解释执行.class

image.png

练习题解析

  1. 下面有关JAVA代码安全性的叙述错误的是()
    字节码校验器加载查询执行所需的所有类 运行时由解释器执行代码 运行时,字节码被加载,验证,然后在解释器中执行 类加载器通过分离本机文件系统的类和从网络导入的类增加安全性
  2. 下面说法正确的是()
    JAVA程序的源文件名称与主类的名称相同,后缀可为.java或者.txt JDK的编译命令为java 一个JAVA源程序编译后,可能产生几个字节码文件 在DOS命令行下编译好字节码文件后,只需输入程序名即可运行该程序
  3. Java应用程序执行入口的main()方法返回类型是()
    int
    void
    boolean
    staic
  4. Java语言相比于C,C++的不同之处在于?
    (1) 不支持指针(2)可以手动进行内存管理(3)Java编译器生成的代码与平台相关(4)自动对内存进行管理(5)Java编译器生成的字节码,只要是安装了Java的运行系统其程序就能在不同的处理器上执行
  1. 某Java程序的类定义如下:
    public class MyClass{}

则该java源文件在存盘时其文件名应当为

myclass.java MyClass.java MYCLASS.java MyClass.class

  1. 设HelloWord的代码为:
    class HelloWord{

public void main(String a[]){

System.out.println("hello world");

}

}

下面说法正确的是:

A.HelloWord.java无法通过编译,因为main方法的声明方式不对
B. HelloWord.java可以通过编译,但是运行该程序会出现异常,不会打印HelloWorld C.HelloWord.java可以通过编译,但是无法运行,因为该文件没有public类 D.HelloWorld.java可以通过编译并正常运行,结果输出hello world

应当是B,这道题目其实是想考察在java中主函数main需要被声明为静态static的知识点,题目中的拼写错误和中文标点错误是助教的失误,现已修正了

1-2 基本数据类型与表达式

下面哪个是不合法的数据结构?

变量与常量
基本数据类型
运算符与表达式
类型转换

文字量

文字量直接出现在程序中并被编译器直接使用,文字量也称文字常量,即在其生存期内是值不可改变的量。

标识符

  1. 一个名称,与内存中的某个位置(地址)向对应。
  2. 标识符的第一个字母必须是:大写字母、小写字母、下划线、美元符号,其中之一。
  3. 标志服的第二个字符必须是上面任意字符,或者数字0-9

在高级语言当中并没有必要关注实际内存地址

变量

  1. 由标识符来表示、都有类型
  2. 变量的值可以被改变

常量

一旦初始化后就不能改变

基本数据类型

语言规范中,编译器能够直接识别的类型


image.png
image.png

字符型:数据

  1. 由单引号括起来的字符或转义序列
  2. 16位Unicode字符作为编码方式,例如:
    char var_char='a'
  3. 转义字符

布尔类型

表示真和假

字符串

但是在Java中没有内置字符串类型
表示字符串不能用字符数组
String是一个类,基础类库中定义好的类

字符串文字量

运算符与表达式

类型转换

每个表达式都有类型,如果语法不相符,编译器会尝试自动类型转换,转换失败编译器会报错

扩展转换

由低类型向高类型转换,这种转换有可能损失精度,整数到浮点,但是float到double就不会损坏 image.png

窄化转换

image.png

长数据转到短数据也会丢失

隐含转换

强制转换

练习题解析

  1. 以下哪些变量的声明是合法的:
    (1) try

(2) _try1231

(3) $Try_*

(4) 4_try

(5) #_try

(6) $try_1_for
第一个try是保留字,所以不合法
选(2)(6)

  1. Sytem.out.println(“1”+2)打印到屏幕的结果是:

1-3 数组

Java的数组跟C语言差别很大
在所有高级语言内都有,概念(熟悉)

数组的概念

由同一类型的对象或者基本数据组成,并风转载同一个标识符(数组名称)下。

  1. 动态初始化
    其他语言:面向过程高级语言,数组一旦定义,数组就马上存在了
    Java:先定义数组的名字,或者叫引用,然后用动态的方式去分配内存空间,然后初始化的。
  1. 所有类顶上的超类是Object,在讲类的继承的时候回继续讲

数组元素

数组中的变量称为数组元素,元素没有名字,通过数组名字和非负整数下标值引用数组元素,

创建使用数组

  1. 声明数组名
  2. 构造数组
  3. 数组初始化
  4. 使用

引用在Java中,定义变量同时就分配内存空间以外,当我们要定义一个对象的时候,都是声明对象的引用,然后用动态内存分配的方式,得到这个对象的内存空间,并且给他初始化,然后把对象和这个引用名关联起来形成对象名
数组引用类似于C语言中数组首地址的指针,其实引用和指针是存在某种内在联系的,虽然在java中没有指针,但是处处有引用

引用声明

创建数组

三种定义方法

初始化

到这一步,上面我们都没有给变量初始化,初始化变量是好的编程习惯。

Java的数据如果构造的时候,定义的时候不给它初始化,它里面不会有垃圾数据的。
基本类型、数值型,会自动初始化为0。引用类型会自动初始化为空引用

数组初始化

使用数组

array copy方法

二维数组的声明构造

(注意上面的三种不同处理方式,声明、构造、初始化既有一步到位,也有分开进行)

二维数组的长度

二维数组长度指的是行数

image.png

在这个示例程序当中刚开始直接打印二维数组的长度(行数),当然就是3,再分开打印每一行的长度(一位数组就是长度),当然就是3、2、5,所以有结论:


image.png

下一章

下一章介绍的流程控制和C语言基本相同

上一篇 下一篇

猜你喜欢

热点阅读