一.前期准备
学习java前,我们首先得先有个java环境,这样才可以让我们的java代码跑起来丫。小编在这里对初学者建议呢下载个Eclipse,直接去官网下载就可以了,完全免费开源的呢!这里也有教程链接:Eclipse最新最简最详细安装教程_rothschildlhl的博客-CSDN博客_eclipse安装教程
学习java前要有对java最基本的认识,那就是java语言是一种面向对象的语言,而与我们学过的c语言是恰恰相反(面向过程的语言)。java语言提供类,接口和继承等原语,为了简单起见,只支持类之间的单继承,但是支持接口之间的多继承,并支持类与接口之间的实现机制。java语言全面支持动态绑定,而c++语言只对虚拟函数的使用动态绑定。(前面的听不懂也没有关系,毕竟是才开始学习,最重要的是记住JAVA是纯面对对象的程序设计语言,且对大小写敏感)
二.基础语法的学习
JAVA主类结构
<1>
上面我们提到java是门面向对象的程序设计语言,java中用类---关键字class来定义对象的类型的(简单来说就是用class来描述“这类对象长什么样子”)下面我们直接来看个例子
创建一个包含我们名字的类
package cn.itcast.hello;
//这是一个名字为FirstClass的类
public class FirstClass {
//类中的内容
private String myname;
}
当然这个类的程序显然是没法运行的。如果要让这个类成为一个能够独立运行的程序,那么这个类必须包含一个名为main()的方法(c中也叫主函数),此时这个类也就被称为了主类。一个类只能有一个主方法,但是里面可以有多个方法。
package cn.itcast.hello;
//这是一个名字为MaintClass类,同时也是主类
public class MainClass {
//类中的内容
private String myname;
public static void main(String[]args) {
System.out.println("我是主方法");
}
private void oneMethod() {
System.out.println("我也是一个方法,但不是主方法");
}
}
<2>JAVA包
我们在写程序的时候会发现代码开始总是从package开始----这就是java包,并且每个java文件只能有一个包声明。但在开发时候我们也会用到其他包里面的内容,这时候我们就要引入该包的文件,就要用到了关键字import(这里简单了解一下 后面会深入学习)
import com.hello.java.MainClass//指定某个类文件
import com.hello.java.*//指定这个包下的所有类文件
<3>访问权限修饰词
访问权限主要就是三个关键字,上面代码大家也可以看见定义无论是方法还是变量总以public/protected/private开头
公开访问权限----public 文件中所有地方均可调用
继承访问权限protected 类内和子类可以调用
私有访问权限private 只有在类内可以使用
<5>编写主方法
上面提到一个类想要独立运行,则必须有他的主方法。这里再次强调一下每个java应用程序都必须有且仅有一个main主方法。 mian()主方法必须被声明为public static void mian并且入参为String[]args或String args[]。 这里给大家解释一下为什么要讲访问权限设置为public:是因为每个java程序在运行时都要创建一个java虚拟机(JVM)实例,由JVM从外部调用main方法,所以main方法的访问权限当然要是public。
基本数据类型
<1>整数类型 :byte short int long
byte:-128 到127 空间占用int类型的1/4 1个字节
short:-32768-32767 空间占用int类型1/2 2个字节
int: java默认的整数类型,直接使用数字为int型 4个字节
long: 8个字节(赋值变量后面加L/l long m=1184L)
系统默认的整数都采用十进制,那么如何表示其他进制的数字呢:
默认的整形数据采用十进制
在数字前面加数字0表示八进制 如 0781
在数字前面加0x,表示十六进制 如0x781
在数字前面加0b,表示二进制 如0b1110
package cn.itcast.hello;
public class NumberIntro {
public static void main(String[]args) {
int a=0b00000011;//二进制数字
int b=1010;//十进制
int c=01234;//八进制
int d=0xF1E3;//十六进制
System.out.println("二进制输出:"+a);
System.out.println("十进制输出:"+b);
System.out.println("八进制输出:"+c);
System.out.println("十六进制输出:"+d);
}
}
不同类型进制的输出:
二进制输出:Integer.toBinaryString(变量)
八进制输出:Integer.toOctalString(变量)
十六进制输出:Interger.toHexString(变量)
package cn.itcast.hello;
public class NumberIntro {
public static void main(String[]args) {
int a=0b00000011;//二进制数字
int c=01234;//八进制
int d=0xF1E3;//十六进制
System.out.println("二进制输出:"+Integer.toBinaryString(a));
System.out.println("八进制输出:"+Integer.toOctalString(c));
System.out.println("十六进制输出:"+Integer.toHexString(d));
}
}
<2>浮点类型
float:声明的变量赋值必须加个F/f 否则按默认double处理 如:float m=1.12F 占4个字节
double:java默认的浮点类型 占8个字节
<3>字符类型
char 占4个字节
当数字使用前面加(int) 为强制转换
<4>布尔类型
boolean 只有false /true 占1个字节 默认值是false
<5>特殊值null
null是一种特殊值 意为“等于0” “无价值”等等
数据类型转换
java中的类型转换分为两类:自动转换 和 强制转换
<1>自动转换 采用的机制是由低向高转换
1.byte可以转换为:short、int、long、float、double
2.short可以转换为:int、long、float、double
下面大家就可以依次类推
char可以转换为:int、float、double
<2>强制类型转换
强制类型转换只需要在变量前加个()括号里面的内容为想要转换的变量即可,上代码!
package cn.itcast.hello;
public class NumberIntro {
public static void main(String[]args) {
int Intnumber=8;
byte bytenumber=(byte)Intnumber;
char charNumber=(char)88;
System.out.println("由int强制转化为byte:"+bytenumber);
System.out.println("将88整数强制转化为char:"+charNumber);
}
}
常量
下面我们来讲一下Java中的常量:
常量是一种预见定义、不可以在后期运行时再做修改的固定的值。
常量命名一般由大小写字母加下划线组成。常量可以是全局的(可以在一个了类文件中随处使用,也可以在其他类文件中引用),也可以是局部的(只能在一个方法中定义使用)。
JAVA中的常量一般会使用final关键字来定义。具体格式如下:
(static)final+数据类型 +常量名称+数值;
下面讲一下一个重灾区,那就是常量重名的问题:常量一旦被定义,在同一作用域下不能再次修改或重新定义(重新定义也不会在程序中生效)
package cn.itcast.hello;
public class ConstantDefination {
private static final int m=10;
private static final int m=6;//这样再次定义修改 会报错
public static void main(String[]args) {
System.out.println(m);
}
}
不同的作用域重名常量在java中并不会报错,是因为jvm在调用该常量时,查找顺序是先找同意作用域中的常量,再找上一作用域中的常量,直到找到为止。
package cn.itcast.hello;
public class ConstantDefination {
private static final int m=10;
public static void main(String[]args) {
final int m=6;//这样再次定义修改 就会报错
System.out.println(m);
}
}