Java基础01 从HelloWorld到面向对象(转载)
"Hello World!"
public static void main(String[] args){
System.out.println("Hello World!");
}
}
程序中包括Java的一些基本特征:
- 类(class):上面程序定义了一个类HelloWorld,该类的名字与.java文件的名字相同。
- 方法(method):类的内部定义了该类的一个方法main。
- 语句(statement):真正的“打印”功能由一个语句实现,即: System.out.println("Hello World!");
编译与运行
使用javac来编译。在命令行中输入下面语句编译:$javac HelloWorld.java
当前路径下,将有一个名为HelloWorld.class的文件生成。
使用java命令来运行:$java HelloWorld。Java会搜寻该类中的main方法,并执行。
变量
byte 1byte 3 字节
int 4bytes 3 整数
short 2bytes 3 短整数
long 8bytes 3 长整数
float 4bytes 1.2 单精度浮点数
double 8bytes 1.2 双精度浮点数
char 2bytes 'a' 字符
boolean 1bit true 布尔值
public static void main(String[] args){
System.out.println("Declare in the middle:");
int a;
a = 5;
System.out.println(a);
}
}
上面a是变量名。可以在声明变量的同时,给变量赋值,比如 int a = 5;
“变量”的概念实际上来自于面向过程的编程语言。在Java中,所谓的变量实际上是“基本类型” (premitive type)。Java中,可用//引领注释。
数组
Java中有数组(array)。数组包含相同类型的多个数据。我用下面方法来声明一个整数数组:
int[] a;
在声明数组时,数组所需的空间并没有真正分配给数组。我可以在声明的同时,用new来创建数组所需空间:
int[] a = new int[100];
这里创建了可以容纳100个整数的数组。相应的内存分配也完成了。
我还可以在声明的同时,给数组赋值。数组的大小也同时确定。
int[] a = new int[] {1, 3, 5, 7, 9};
使用int[i]来调用数组的i下标元素。i从0开始。
其他类型的数组与整数数组相似。
表达式
public static void main(String[] args){
System.out.println("Declare in the middle:");
int a;
a = 5 + 1;
System.out.println(a);
}
}
上面的5 + 1也是一个表达式,等于6。
数学表达式
数学运算,结果为一个数值
1 + 2 加法
4 - 3.4 减法
7 * 1.5 乘法
3.5 / 7 除法
7 % 2 求余数
关系表达式
判断表达式是否成立。即一个boolean值,真假
a > 4.2 大于
3.4 >= b 大于等于
1.5 < 9 小于
6 <= 1 小于等于
2 == 2 等于
2 != 2 不等于
布尔表达式
两个boolean值的与、或、非的逻辑关系
true && false and
(3 > 1) || (2 == 1) or
!true not
位运算
对整数的二进制形式逐位进行逻辑运算,得到一个整数
& and
| or
^ xor
~ not
5 << 3 0b101 left shift 3 bits
6 >> 1 0b110 right shift 1 bit
还有下列在C中常见的运算符,我会在用到的时候进一步解释:
m++ 变量m加1
n-- 变量n减1
condition ? x1 : x2 condition为一个boolean值。根据condition,取x1或x2的值
控制结构
statements;
...
}else if(condition2){
statements;
...
}else{
statements;
...
}
面向对象
“对象”是计算机抽象世界的一种方式。“面向对象”可以用很多方式表达。下面是一种并不精确,但比较直观的理解方式:
- 世界上的每一个事物都可以称为一个对象(object),比如张三。对象有身份(Identity),状态(State)和行为(Behavior)。
- 对象的状态由数据成员(data member)表示。数据成员又被称作域(field)。我们用其他对象作为该对象的数据成员。比如一个表示身高的整数,比如一个鼻子。
- 对象的行为由成员方法(member method)表示。我们简称为方法(method)。一个对象可以有多个方法,比如呼吸,睡觉。
- 对象可以归类(class),或者说归为同一类型(type)。同一类型的对象有相同的方法,有同类型的数据成员。某个类型的一个对象被称为该类型的一个实例(instance)
void breath(){
System.out.println("hu..hu..");
}
int height;
}
在{}范围内,Human类有两个成员: 一个数据成员height,一个方法breath()。
- 数据成员height是整数类型,可以用于存储一个整数。
- 方法代表了对象所能进行的动作,也就 是计算机所能进行的操作。方法可以接受参数,并能返回值。在breath()的定义中,breath后面的()中为参数列表。由于参数列表为空,所以 breath()不接受参数。在breath()之前的void为返回值的类型,说明breath不返回值。
- (方法与面向过程语言中的函数类似)
现在,我们创建对象aPerson,并调用对象的方法breath:
public static void main(String[] args){
Human aPerson = new Human();
aPerson.breath();
System.out.println(aPerson.height);
}
}
class Human{
void breath(){
System.out.println("hu..hu..");
}
int height;
}
在main方法中,使用new关键字创建对象。即使是来自同一个类的对象,各个对象占据的内存也不相同,即对象的身份也不同。
Human aPerson声明了aPerson对象属于Human类,即说明了对象的类型。
对象建立后,我们可以用 对象.数据成员 来引用数据成员,使用 对象.方法() 的方式来调用方法。正如我们在后面打印aPerson.height
Java基础01 从HelloWorld到面向对象(转载)的更多相关文章
- Java基础01 ------ 从HelloWorld到面向对象
Java是完全面向对象的语言.Java通过虚拟机的运行机制,实现“跨平台”的理念.我在这里想要呈现一个适合初学者的教程,希望对大家有用. "Hello World!" 先来看一个H ...
- java基础 01
java基础01 1. /** * JDK: (Java Development ToolKit) java开发工具包.JDK是整个java的核心! * 包括了java运行环境 JRE(Java Ru ...
- java基础01
1. /** * JDK: (Java Development ToolKit) java开发工具包.JDK是整个java的核心! * 包括了java运行环境 JRE(Java Runtime Env ...
- 一、Java基础--01
Java基础测试题分析 第一题是关于基本的算法知识,这个很有必要去掌握以下,在学校也经常听老师们说找工作比试面试会出一些这方面的知识,我拿到的第一题是关于排序的,虽然很简单,但是我还是要提醒一下基础不 ...
- Java基础-synchronized关键字的用法(转载)
synchronized--同步 顾名思义是用于同步互斥的作用的. 这里精简的记一下它的使用方法以及意义: 当synchronized修饰 this或者非静态方法或者是一个实例的时候,所同步的锁是加在 ...
- java基础-01代理类
简单的代理类实现案例主实现类:ProxyTestimport java.lang.reflect.InvocationHandler;import java.lang.reflect.Proxy;im ...
- java基础-01基本概念
java的特点 跨平台 所谓的平台,我们可以理解为操作系统. 大部分语言是不能跨平台的,比如c语言的程序在windows和linux上需要编写不同的代码. java程序是运行在JVM(Java Vir ...
- Java基础12 类型转换与多态(转载)
类型检查 Java的任意变量和引用经过类型声明(type declaration),才能使用.我们之前见过对象数据.类数据.方法参数.方法返回值以及方法内部的自动变量,它们都需要声明其类型.Java是 ...
- java基础知识(3)----面向对象
三:面向对象:特点: 1:将复杂的事情简单化.2:面向对象将以前的过程中的执行者,变成了指挥者.3:面向对象这种思想是符合现在人们思考习惯的一种思想. 过程和对象在我们的程序中是如何体现的呢?过程其实 ...
随机推荐
- Delphi 目前使用delay函数功能
procedure sdfg.iTimers1Timer4(Sender: TObject);var vsub : Cardinal; vSetinterval: Cardinal;begin vsu ...
- 使用Vue-cli创建project遇到的坑
环境: win10 / node( v10.2.1) /npm( v5.6.0) 准备: 1.安装node:上node官网下载node版本进行安装 2.安装vue-cli:npm install -- ...
- http://www.binghe.org/2010/03/use-httpsurlconnection-in-java/
http://www.binghe.org/2010/03/use-httpsurlconnection-in-java/
- struts2文件上传时获取上传文件的大小
利用struts2框架上传文件时,如果想要获取上传文件的大小可以利用下面的方式进行: FileInputStream ins = new FileInputStream(file); if (ins. ...
- 【AS3 Coder】任务四:噪音的魅力(上)
使用框架:AS3任务描述:使用AS3中BitmapData的noise方法以及perlinNoise方法构建自然景观效果以及其他一些比较cool的效果难度系数:2 本文章源码下载:www.iamsev ...
- Socket网络通讯开发总结之:Java 与 C进行Socket通讯(转)
先交待一下业务应用背景:服务端:移动交费系统:基于C语言的Unix系统客户端:增值服务系统:基于Java的软件系统通迅协议:采用TCP/IP协议,使用TCP以异步方式接入数据传输:基于Socket流的 ...
- 虚拟机oracle virtualbox 上安装centos6.5 网络设置
上篇文章写到,在虚拟机上安装centos6.5,结果依照文章非常顺利的安装了,可是用yum安装软件的时候.报错,源有问题,不能下载,然后ping一下摆渡.非常悲催 dns解析不了,cat /etc/r ...
- git删除历史
Git如何永久删除文件(包括历史记录) 有些时候不小心上传了一些敏感文件(例如密码), 或者不想上传的文件(没及时或忘了加到.gitignore里的), 而且上传的文件又特别大的时候, 这将导致别 ...
- Excel 将换行符替换为空
Step1:按快捷键Ctrl+H,打开"查找和替换"对话框: Step2:选择"查找内容"后的文本框,按住Alt键,在数字键盘中输入&quo ...
- antd-design LocaleProvider国际化
1.LocaleProvider 使用 React 的 context 特性,只需在应用外围包裹一次即可全局生效. import { LocaleProvider } from 'antd'; imp ...