一个Java文件可以有多个类,但只能有一个public类。
变量利用final定义常量
数据类型和定义方法与c++相同 浮点类型默认为double
浮点型 float定义需要添加后缀f 浮点数由于不精确,不能用于比较 可以使用java.math下的BigDecimal类
和BigIntege类进行比较
字符型的使用与c++类似,依然用char定义
运算符的使用和类型与c++相同
二元运算符
整数时:
(1)如果两个 *** 作数有一个为Long,结果为Long。(2)没有Long时,即使 *** 作数全为short,byte,结果
也是int
浮点运算
一个 *** 作数为double,结果为double,只有两个 *** 作数都为float,结果才是float。
各类运算符的结合性与优先级与c++相同。
逻辑运算符
短路特性:
package j;
public class j1 {
public static void main(String[] args)
{
boolean b1=true;
boolean b2=false;
System.out.println(b1||b2);//通过左侧 *** 作数即可判断,则不会计算右侧 *** 作数
// int a=3/0;系统提示错误
boolean c=1>2&&2<(4/0);
System.out.println(c);
}
}
得到结果
true
false
利用Scanner来输入数值:
package j;
import java.util.Scanner;
public class j2 {
public static void main(String[] args)
{
Scanner scanner=new Scanner(System.in);
System.out.println("姓名");
String name=scanner.nextLine();
System.out.println("性别");
String sex=scanner.nextLine();
System.out.println("年龄");
int age=scanner.nextInt();
}
}
得到结果
姓名
李四
性别
男
年龄
20
控制语句
if语句、switch语句、for循环、while循环的内容与c++中一致。
带标签的break和continue:
public static void main(String[] args)
{
/*先定义标签位置 */ lable:
for(int i=0;i<5;i++)
{
int sum=0;
sum=sum+i;System.out.println(sum);
if(sum>3) break lable;
}
}
}
结果
0
1
2
3
4
方法
相当于c++中的函数
定义格式:
[修饰符1 修饰符2 …] 返回值类型 方法名(形式参数表)
{
java语句…;
}
要通过对象来调用普通方法。
基本类型传递的时该数据值的copy值;引用类型传递的是该对象引用的copy值,但指向的是同一个对象。
方法的重载与函数重载类似
参数的个数、类型、顺序不同都可构成重载。
构造方法和构造函数类似:
要点
(1)通过new关键字调用;(2)构造器虽然有返回值,但不能定义返回值类型,不能在构造器内使用return返回某个值;
static修饰的方法和变量从属于类,生命周期与类相同。
可以通过import导入类;导入同名类时,只能用包名+类名区分。
面向对象同一包内不能有同名类。
一、继承
子类、父类的关系与c++中相似,但没有多继承,只有单继承,利用extends关键字。
(快捷键CTRL+T)
形式: class A{
…
}
class B extends A {
…
}
当定义一个类时,没有调用extends,则它的父类:java.lang.Object
可利用 对象 instanceof 类 来查看对象和类的关系。
重写(覆盖):
(1)方法名、形参列表相同;(2)返回值类型和声明异常类,子类要小于等于父类;(3)访问权限,子类大于等于父类;
super是父类的直接引用,可以用super来访问父类中被子类覆盖的方法或属性。
调用子类的构造器前一定会先调用父类的构造器(与c++类似)
二、封装
访问控制符,依旧是private、public、protected以及default
default:表示没有修饰符修饰,只有同一个包内的类可以访问。
protected:可以被同一个包内的类和其他包内的子类访问。
private:只有自己类能访问。
public:被该项目内所有包访问。
多态:同一个方法调用,由于对象不同可能会有不同行为(方法的多态而不是属性多态)。
存在条件:继承、方法重写、父类引用指向子类对象。
基本特点:(1)长度确定,一旦被创建,大小不可改变;(2)元素为相同类型;(3)数组类型可以为任何数据;
声明方式:1. type[] name;
2. type name[];
注意:声明数组时并没有数组被创建。
数组初始化:(1)静态初始化(声明时直接赋值)
(2)动态初始化(通过下标赋值)
(3)默认初始化
数组的遍历(即利用循环初始化和输出数组)
for-each循环(一般只用来读取)
public class j4 {
public static void main(String args[])
{
int[] a= {1,2,3,4};
for(int m:a)
{
System.out.println(m);
}
}
}
结果
1
2
3
4
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)