Java 基础:修订间差异
跳到导航
跳到搜索
(创建页面,内容为“===语法=== *'''对象''':对象是类的一个实例,有状态和行为。例如,一条狗是一个对象,它的状态有:颜色、名字、品种;行为有:摇尾巴、叫、吃等 *'''类''':类是一个模板,它描述一类对象的行为和状态 *'''方法''':方法就是行为,一个类可以有很多方法。逻辑运算、数据修改以及所有动作都是在方法中完成的 *'''实例变量''':每个对象都有独特的…”) |
|||
(未显示1个用户的8个中间版本) | |||
第1行: | 第1行: | ||
===语法=== | ===语法=== | ||
*'''对象(object)''' :对象是类的一个实例,有状态和行为。例如,一条狗是一个对象,它的状态有:颜色、名字、品种;行为有:摇尾巴、叫、吃等 | |||
*'''对象''':对象是类的一个实例,有状态和行为。例如,一条狗是一个对象,它的状态有:颜色、名字、品种;行为有:摇尾巴、叫、吃等 | *'''类(class)''' :类是一个模板,它描述一类对象的行为和状态 | ||
*'''类''':类是一个模板,它描述一类对象的行为和状态 | **'''方法(method)''':方法就是行为,一个类可以有很多方法。逻辑运算、数据修改以及所有动作都是在方法中完成的 | ||
*'''方法''':方法就是行为,一个类可以有很多方法。逻辑运算、数据修改以及所有动作都是在方法中完成的 | **'''实例变量''' :每个对象都有独特的实例变量,对象的状态由这些实例变量的值决定 | ||
*'''实例变量''':每个对象都有独特的实例变量,对象的状态由这些实例变量的值决定 | |||
===函数格式=== | ===函数格式=== | ||
[[文件:Java function.jpg|无框| | [[文件:Java function.jpg|无框|400x400px]] | ||
#访问修饰符: public, private | #访问修饰符: public, private | ||
第14行: | 第13行: | ||
#方法名: main | #方法名: main | ||
#参数: string[] | #参数: string[] | ||
变量引用类型 | |||
传值类型与引用类型。 | |||
* 传值类型,指基本数据类型(int, double, date, etc...)通过传值使用,只使用一块存储空间(分配在 stack 中) | |||
* 引用类型,除了基本的变量类型之外的所有类型(如通过 class 定义的类型),使用两块存储空间(一块在 stack 中,一块在 heap 中) | |||
==== 访问控制 ==== | |||
* public: 可以被所有其他类所访问 | |||
* private: 只能被自己访问和修改 | |||
* protected: 自身、子类及同一个包中类可以访问 | |||
* friendly: 同一包中的类可以访问,声明时没有加修饰符,默认是 friendly | |||
Java 的访问控制是停留在编译层的,也就是它不会在 .class 文件中留下任何的痕迹,只在编译的时候进行访问控制的检查。其实,通过反射的手段,是可以访问任何包下任何类中的成员,例如,访问类的私有成员也是可能的。 | |||
==== 关键字 ==== | |||
* static: 定义类级别的变量和方法。可以不用创建对象而使用、优化性能 | |||
* final: 定义不可变的变量、方法或类。变量不能改变、方法不允许被重写、类不允许被继承 | |||
===编译=== | ===编译=== | ||
javac [-encoding UTF-8 ] HelloWorld.java | javac [-encoding UTF-8 ] HelloWorld.java | ||
执行: java HelloWorld | 执行: java HelloWorld | ||
=== 三大特性 === | |||
封装,继承,多态 | |||
* '''封装(Encapsulation)'''是面向对象方法的重要原则,就是把对象的属性和操作(或服务)结合为一个独立的整体,并尽可能隐藏对象的内部实现细节 | |||
# 将类的某些信息隐藏在类的内部,不允许外部程序进行直接的访问调用 | |||
# 通过该类提供的方法来实现对隐藏信息的操作和访问 | |||
# 隐藏对象的信息 | |||
# 留出访问的对外接口 | |||
# 使用 private 修饰符,表示最小的访问权限 | |||
# 对成员变量的访问,提供 set, get 方法 | |||
* '''继承(Inheritance)'''就是子类继承父类的特征和行为,使得子类对象(实例)具有父类的实例域和方法,或子类从父类继承方法,使得子类具有父类相同的行为。当然,如果在父类中拥有私有属性(private 修饰),则子类是不能被继承的。 | |||
# 只支持单继承,即一个子类只允许有一个父类,但是可以实现多级继承,及子类拥有唯一的父类,而父类还可以再继承 | |||
# 子类可以拥有父类的属性和方法 | |||
# 子类可以拥有自己的属性和方法 | |||
# 子类可以重写(override)覆盖父类的方法 | |||
* 多'''态(Polymorphism)'''是同一个行为具有多个不同表现形式或形态的能力 | |||
# 消除类型之间的耦合关系,实现低耦合 | |||
# 灵活性 | |||
# 可扩充性 | |||
# 可替换性 | |||
=== 理解多态 === | |||
多态是指在父类中定义的属性和方法被子类继承之后,可以具有不同的数据类型或表现出不同的行为,这使得同一个属性或方法在父类及其各个子类中具有不同的含义。 | |||
多态存在的三个前提: | |||
* 要有继承关系 | |||
* 子类要重写父类的方法 | |||
* 父类引用指向子类对象 | |||
多态定义与使用格式: | |||
* 定义格式:父类类型 变量名=new 子类类型(); | |||
多态成员方法:编译看左边,运行看右边 | |||
* 调用成员对象时,看创建对象左边,左边是父类,那么调用的就是父类的成员对象(编译时,对象) | |||
* 调用成员方法时,看创建对象右边,右边是子类,那么调用的就是子类的成员方法(运行时,方法) | |||
UdfHello test4 = new UdfHelloJ(); | |||
System.out.println(test4.getInfo()); | |||
System.out.println(test4.VERSION); | |||
See also: [[Java Hello]] | |||
=== 源文件声明规则 === | |||
* 一个源文件中只能有一个 public 类,多个非 public 类 | |||
* 源文件的名称应该和 public 类的类名保持一致,一般 interface 命名为IClassName,实现部分命名 ClassName | |||
* 如果一个类定义在某个包(目录)中,那么 package 语句应该在源文件的首行 | |||
* 如果源文件包含 import 语句,那么应该放在 package 语句和类定义之间 | |||
* import 语句和 package 语句对源文件中定义的所有类都有效 | |||
[[分类:Develop]] | [[分类:Develop]] | ||
[[分类:Java]] | [[分类:Java]] |
2024年4月26日 (五) 16:10的最新版本
语法
- 对象(object) :对象是类的一个实例,有状态和行为。例如,一条狗是一个对象,它的状态有:颜色、名字、品种;行为有:摇尾巴、叫、吃等
- 类(class) :类是一个模板,它描述一类对象的行为和状态
- 方法(method):方法就是行为,一个类可以有很多方法。逻辑运算、数据修改以及所有动作都是在方法中完成的
- 实例变量 :每个对象都有独特的实例变量,对象的状态由这些实例变量的值决定
函数格式
- 访问修饰符: public, private
- 关键字: static
- 返回类型: void
- 方法名: main
- 参数: string[]
变量引用类型
传值类型与引用类型。
- 传值类型,指基本数据类型(int, double, date, etc...)通过传值使用,只使用一块存储空间(分配在 stack 中)
- 引用类型,除了基本的变量类型之外的所有类型(如通过 class 定义的类型),使用两块存储空间(一块在 stack 中,一块在 heap 中)
访问控制
- public: 可以被所有其他类所访问
- private: 只能被自己访问和修改
- protected: 自身、子类及同一个包中类可以访问
- friendly: 同一包中的类可以访问,声明时没有加修饰符,默认是 friendly
Java 的访问控制是停留在编译层的,也就是它不会在 .class 文件中留下任何的痕迹,只在编译的时候进行访问控制的检查。其实,通过反射的手段,是可以访问任何包下任何类中的成员,例如,访问类的私有成员也是可能的。
关键字
- static: 定义类级别的变量和方法。可以不用创建对象而使用、优化性能
- final: 定义不可变的变量、方法或类。变量不能改变、方法不允许被重写、类不允许被继承
编译
javac [-encoding UTF-8 ] HelloWorld.java 执行: java HelloWorld
三大特性
封装,继承,多态
- 封装(Encapsulation)是面向对象方法的重要原则,就是把对象的属性和操作(或服务)结合为一个独立的整体,并尽可能隐藏对象的内部实现细节
- 将类的某些信息隐藏在类的内部,不允许外部程序进行直接的访问调用
- 通过该类提供的方法来实现对隐藏信息的操作和访问
- 隐藏对象的信息
- 留出访问的对外接口
- 使用 private 修饰符,表示最小的访问权限
- 对成员变量的访问,提供 set, get 方法
- 继承(Inheritance)就是子类继承父类的特征和行为,使得子类对象(实例)具有父类的实例域和方法,或子类从父类继承方法,使得子类具有父类相同的行为。当然,如果在父类中拥有私有属性(private 修饰),则子类是不能被继承的。
- 只支持单继承,即一个子类只允许有一个父类,但是可以实现多级继承,及子类拥有唯一的父类,而父类还可以再继承
- 子类可以拥有父类的属性和方法
- 子类可以拥有自己的属性和方法
- 子类可以重写(override)覆盖父类的方法
- 多态(Polymorphism)是同一个行为具有多个不同表现形式或形态的能力
- 消除类型之间的耦合关系,实现低耦合
- 灵活性
- 可扩充性
- 可替换性
理解多态
多态是指在父类中定义的属性和方法被子类继承之后,可以具有不同的数据类型或表现出不同的行为,这使得同一个属性或方法在父类及其各个子类中具有不同的含义。
多态存在的三个前提:
- 要有继承关系
- 子类要重写父类的方法
- 父类引用指向子类对象
多态定义与使用格式:
- 定义格式:父类类型 变量名=new 子类类型();
多态成员方法:编译看左边,运行看右边
- 调用成员对象时,看创建对象左边,左边是父类,那么调用的就是父类的成员对象(编译时,对象)
- 调用成员方法时,看创建对象右边,右边是子类,那么调用的就是子类的成员方法(运行时,方法)
UdfHello test4 = new UdfHelloJ(); System.out.println(test4.getInfo()); System.out.println(test4.VERSION);
See also: Java Hello
源文件声明规则
- 一个源文件中只能有一个 public 类,多个非 public 类
- 源文件的名称应该和 public 类的类名保持一致,一般 interface 命名为IClassName,实现部分命名 ClassName
- 如果一个类定义在某个包(目录)中,那么 package 语句应该在源文件的首行
- 如果源文件包含 import 语句,那么应该放在 package 语句和类定义之间
- import 语句和 package 语句对源文件中定义的所有类都有效