java笔记

1.1开发环境

1.      JDK和JRE分别是什么

*参考第9节1.3,或者上网询问*

 

2. 集成开发环境IDE是什么

*请上网询问,了解IDE与语言本身的区别*

1.2 开发工具

1. MyEclipse

   创建项目,导入项目或文件,导出项目或文件

二、Java 语言基础

2.1 数据类型

1. 变量(variable)

- 命名规则是()

- 命名约定是()

- 规则和约定的区别是()

*书中P11P12*

 

2. 数据类型(type)

-  数据有多种类型 *参考书中2.1.1至2.1.4*

 请同学们注意,这部分信息繁杂,有很多细节,不要追求一次都记住,能够识别基本类型,会最基本使用即可,知识细节要在运用中逐步习得,轻松又自然。

-         我们在项目中频繁使用的 String,不是基本数据类型,而是Java语言库中定义好的类。String 这个单词的本意是绳、串,一般的文本是由一个个字符构成的“串”,故称字符串。

-         字符型 char (单词character 的前四个字母)则是基本数据类型,注意区分二者。

 

3. 定义变量(define avariable)

- 定义变量的内涵是()

  一切程序都在内存(memory)中存活,程序中的一切数据和可执行代码都只有存在于内存中才有意义。定义变量的本质,是在内存中为定义的变量分配(allocate)大小合适的区域,同时规定了这块区域中的内容的使用方法。比如说,int 型占据4个字节,作为整数类型,对它的使用,包括进行加减乘除等操作,但不可用来做“真”或“假”的判断(和C语言不同)。变量名,可以理解为抓住这个内存区的一个“把手”,有了这个“把手”,我们才能对这块我们摸不到的内存空间进行各种操作。

*不同数据类型占据的内存空间,参考P12P13中的表格*

 

2.2 运算

1. 运算符(operator)

- 有了变量,也就有了内存中的数据空间,但是只有让这些数据空间被调动起来,才能完成各种工作,也就是要对变量进行各种运算。

*书中2.2节,P17*

再次请同学们注意,不要追求一次记住这些信息,在运用中逐步掌握。

 

2. 语句(statement)

Java语言中,每一句完整的话,都要用分号标志结束,就像我们写文章一定离不开句号一样。遗漏分号,是一种常见的语法错误(syntax error),语法错误,简单说,就是你说的话计算机听不懂,与之相对的常见错误是逻辑错误,这时,计算机听懂你的话并执行了,但是执行的结果却不符合你的预期,因为程序的执行逻辑中隐含了错误。

3.3 逻辑结构

1. 分支结构

程序最基本结构之一,用于在不同条件下执行不同的代码。最长用的是if,以及switch,这里注意,if语句的嵌套使用是极为常见的。

*书中2.3.3节,P24*

 

2. 循环结构

程序最基本结构之二,常用while 及for。

*书中2.3.4*

 

3. 顺序结构

我们常常忽略了最最基本的程序结构,就是顺序结构,因为这种结构不需要额外的控制语句,代码从上而下的书写顺序,就体现了顺序结构的流程。值得注意的是,这种结构有一定的灵活性,比如:

Int a = 3;

Int b = 4;

System.out.print(“a is ” + a);

System.out.print(“b is ” + b);

也可以写成:

Int a = 3;

System.out.print(“a is ” + a);

Int b = 4;

System.out.print(“b is ” + b);

这两者的书写顺序不同,执行流程也有区别,但是从程序的目的来观察,我们要先打印a的值,再打印b的值,从这个目的来说,这两种写法并没有区别,达到了同样的目的。变量的定义位置,是特别灵活的一个地方,但是从软件工程的角度来说,通常选择在最接近使用的地方去定义,这使得变量被定义的目的易于被了解。

 

3.3 技术细节

1. main

main 方法来自于C中的main,用来做程序的入口,入口可以理解为代码在内存空间中最开始的位置,只有抓住这个位置,程序才能按照顺序执行。所以,main作为门户,写法上有特定的要求,其四个要素缺一不可。

*书中P11,开头部分*

 

2. 输入语句

在基础部分,我们需要程序能在控制台接受用户输入,为此专门学习了输入语句的用法,与之相关的要点有:

Import java.util.Scanner;

……

Scanner sc = new Scanner(System.in);

……

sc.next();

……

sc.nextInt(); 等等。

*书中P23*

二、面向对象编程

2.1 面向(orient)对象(object)的概念

面向对象的概念对于初学者很难理解,它是区别于面向过程编程的概念,如果对面向过程理解尚浅,就很难体会面向对象的好处。把面向对象直接类比于现实世界中的物品,并不能说明很多编程层面的内涵,我建议大家先不要过分纠结于这些概念,先上手编程使用即可。

 

面向对象,名为对象,编程的核心却是类(class)的设计,对象是类的实例化(instance)。所以面向对象的核心概念是类。所谓的实例化,可以理解为把一个虚空的概念变成现实。类,好比房子的建筑图纸,对象,则是按照这张图纸在内存里把房子搭建起来。

 

相对于C++这样的语言,Java对面向对象的完整性要求要高得多, C++中可以像C一样,直接写一个 main函数,但是Java不可以,Java中的main必须被类包裹起来,成为类的一部分,这就是为什么我们创建一个项目之后,立刻就要创建一个类,然后在这个类中才能开始写main。

 

2.2 包

包不是面向对象语言的特有内容,而是Java语言提供的便于对代码组织管理的一种机制。

1.      创建包

-         会在MyEclipse中创建包

-         会把文件用拖拽的方法加入包中

-         理解创建包发生的事情

头部出现包的声明语句,包的名称对应实际的目录结构。

*书中P39 中介绍的内容,有余力再研究例3-1*

 

2. 导入包

- 在学习Scanner时已经用过

*书中P42*

 

2.3 类(class)

类,最简单、直接的理解就是一种自定义类型。所谓自定义类型是相对于基本类型而言,比如int,char,boolean……这些类型占用的空间大小,被使用的方式,都是被预先定义、不可更改的,但是类,也定义了一种类型,这个类型的大小,使用的方式,都是由程序员自行定义的。

1.      类的定义

- public class ClassName { }

*书中P43,但是书中的定义因为追求完整而显得繁琐,难以理解,建议从上面的一定开始,逐步学习*

- 命名约定:和变量的命名约定相比,首字母总是大写。

 

2.      new 运算符

int a = 4;

这个语句的含义是:定义整型变量a,并将其初始化为4。这里需注意:变量被初始化的值和变量的类型必须一致,因为我们说过,变量的类型决定了变量在内存中的空间大小还被使用的方式,如果被赋予的值和它的类型不一致,就好像用花盆装西瓜,出现容器与内容不匹配的问题。

既然class也是一种类型,那么我们也期待它被同样的方式来使用。假设我们自定义了一种新类型

class MyType {

……

}

我们希望在用它定义变量时,像用基本类型定义变量一样

MyType a = XXX;

这里,XXX出现问题,因为不同于基本类型,NewType是自定义的,没有像整数或字符一样可以直接用来给它赋值的值,所以,使用 class 必须有它独特的语法要求,这个语法就是 new。

MyType a = new MyType();

new 关键字做的工作是,对类型MyType进行实例化,得到一个对象。这个语句把这个对象挂在变量名 a 的名下。注意,和int a = 4; 一样,这时,等号两边的类型是一样的。

*书中P43 末尾*

 

3.      类中的成员(member)

- 含义。类的一个最基本的好处,是把相关联的数据都打包到一起,便于管理和阅读。这些相关联的数据,就成为类里面的成员。从内存的观点,可以认为,成员决定了这种类型将占据内存空间的大小。

- 定义的方式。

*书中P45*

 

4.      类中的方法(method)

- 含义。从内存观点,可以认为,方法决定了这块内存被使用的方法。

- 定义的方式。

 *书中P50,但是书中的定义因为追求完整而难以理解,可参考C语言中函数的定义*

- get和set 方法

get和set是类的封装特性的具有代表性的常见例子。封装、继承和多态是面向对象编程的三大特性。需掌握在MyEclipse中右键直接生成get 和set代码的方法。

*书中P50*

5.      构造方法(constructor)

- 含义,对类中成员进行初始化操作。

- 构造方法的重载

*书中P48P52*

2.4 技术细节

1. static

静态,用来修饰成员或成员方法。前面说过,对象是类的实例化,不经过new,类中的成员就无法从图纸上变成现实。然而,被static 修饰的成员或方式是个例外。它不跟随new 被创建,也不在对象的内存空间里。所以,它可以直接通过类名加点来访问,这对于普通成员或方法是做不到的。

2.      final

被final关键字修饰的成员不可以被修改。final 修饰的方法则表示,在继承关系中,父类中的final方法不能被子类重写。

3.      访问控制符

private,public,protected等都是用来控制类中成员或方法的访问权限的。什么都不写就是默认权限。访问控制权限集中反映了类的封装性。

*书中P46*

这部分关系很繁琐,不要心急,在编写代码中遇到各种情况细细体会。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值