类和对象
类文件后缀:.java,
包(namespace):我的项目上右键创立
package _17bang.CD.Yz;
引入(using),留神import的是一个“类”,不是名称空间
import _17bang.YZ.Student;
但能够应用通配符 *,比方:
import _17bang.YZ.*;
没有partial类
拜访修饰符:没有关键字internal(不能显式申明,默认即可,package中可见)
一个类文件只能有一个public类
static:能够由对象调用(只warning不报错)
援用类型和值类型
其余类成员
快捷键生成:alt+shift+s,
构造函数间调用:
public Student(int age) { this(); }
没有属性,只有getter和setter。所以也没有主动属性等一系列相干的语法。
private int age; public int getAge() { return age; } public void setAge(int age) { this.age = age; }
没有readonly关键字
final: 润饰变量/字段时,等同于 const
没有索引器
析构函数
protected void finalize() { }
动态和实例
没有static构造函数
顶级类不能static,外部类能够
继承
应用关键字extends示意继承,super示意基类
public class OnlineStudent extends Student { public OnlineStudent(int age) { super(age); } }
final:润饰类/办法,同sealed
instanceof:同is,没有as
Person fg = new Teacher(); System.out.println(fg instanceof Person); System.out.println(fg instanceof Teacher);
多态
没有virtual和override关键字,默认override(可用@Override标记)
没有new的hide
形象办法和接口
没有接口的显式(explicit)实现
构造和日期
没有struct
日期应用Calendar类:
Calendar date = Calendar.getInstance(); //不能间接new出 date.set(2002, 8, 15); date.add(Calendar.YEAR, 2); System.out.println(date.get(Calendar.DATE));
格式化日期用DateFormat类:
System.out.println(DateFormat.getDateInstance(DateFormat.FULL, Locale.CHINA).format(new Date()));
枚举和位运算
不能自行设置枚举的底层数据
不能在枚举和整数类型间转换
枚举的罕用办法:
Grade[] grades = Grade.values(); Grade result = Grade.valueOf("Failed"); int index = Grade.Failed.ordinal(); System.out.println("..........." + index);
Object:万物皆对象
没有值C#简单的struct/class继承体系
反射
取得类型信息:
- getClass(),相似于getType()
- class属性,相似于typeof
Class c1 = o.getClass(); Class c2 = Object.class;
正文(Annotation)
应用 @ 符号
@Override protected void Learn(double score) { super.Learn(score); }
申明,关键字是@interface
import java.lang.annotation.*; public @interface Override { }
罕用标注(Annotation)
- @Override:查看/确保以后办法是override/实现的父类/接口办法
- @Deprecated:标记“过期”
- @Target:指明Annotation能用于哪些指标元素
- @Inherited
String和StringBuilder
没有内插,可用String.format()代替
System.out.println(String.format("源栈欢送你,%s同学,你的问题是%f分", "周丁浩", 98.5));