回到宋红康的面向对象
java类及类的成员:属性、方法、构造器;代码块、内部类
面向对象的三大特征:封装、继承、多态、(抽象性)
其他关键字: this\super\static\final\abstract\interface\package\import
以“人把大象装进冰箱”为例
面向对象:强调具备了功能的对象,以类、对象为最小单位,
考虑谁来做,什么对象有什么样的功能,然后实体化一个对象,
再调用相应的功能
面向对象的要素:类、对象
下面的代码就是一个典型的面向对象示例
- package code_learn_day10.demo01;
- /*
- 属性 = 成员变量 = field = 域、字段
- 方法 = 成员方法 = 函数 = method
- */
- public class PersonTest {
- public static void main(String[] args) {
- //创建Person类的对象,等同于实例化
- Person p1 = new Person();
- //调用对象的结构:属性、方法
- //调用属性:“对象.属性”
- p1.name = “睿酱”;
- p1.isMale = false;
- p1.isVirgin = false;
- p1.age = 23;
- System.out.println(p1.name);
- //调用方法:“对象.方法“
- p1.eat();
- p1.sleep();
- p1.age();
- p1.isVirg();
- }
- }
- class Person {
- // 属性
- String name;
- int age;
- boolean isMale;
- boolean isVirgin;
- // 方法
- public void eat() {
- System.out.println(“人可以吃饭”);
- }
- public void sleep() {
- System.out.println(“人可以睡觉”);
- }
- public void talk(String language) {
- System.out.println(“人可以说话,使用的是” + language);
- }
- public void age(){
- System.out.println(this.name + this.age + “岁”);
- }
- public void isVirg() {
- if (isVirgin) {
- if (isMale) {
- System.out.println(this.name + “是个处男”);
- } else {
- System.out.println(this.name + “是个处女”);
- }
- } else {
- System.out.println(this.name + “不是处”);
- }
- }
- }
输出:
类中属性的使用
属性(成员变量)VS局部变量
1、相同点:
1.1 定义变量的格式:数据类型 变量名 = 变量值
1.2 先声明,后使用
1.3 变量都有其声明所在的作用域
2、不同点:
2.1 在类中声明的位置不同
属性:直接定义在类的一堆{}内
局部变量:申明在方法内、方法形参、代码块内、构造器形参、构造器内部的变量
2.2 关于权限修饰符的不同<br /> 属性:可以在声明属性时,指明其权限,使用权限修饰符<br /> 常用的修饰符:private\public\缺省\protected<br /> 局部变量:不能使用权限修饰符
2.3 默认初始化值的情况:<br /> 属性:类的属性,根据其类型,都有默认初始化值<br /> 整形(byte\short\int\long):0<br /> 浮点型(float\double):0<br /> 字符型(char):0(或'\u0000')<br /> 布尔型(boolean):false<br /> 引用数据类型(类、数组、接口):null
局部变量:没有默认初始化值。<br /> 调用局部变量之前必须显式赋值<br /> 形参在调用时赋值即可<br /> <br /> 2.4 在内存中加载的位置不一样<br /> 属性:加载到堆空间中(非static)<br /> 局部变量:加载到栈空间
类中方法的使用:
方法:描述类应该具有的功能。
比如:Math类:sqrt()\random()...
Scanner类:NextXxx()…
Arrays类:sort()\binarySearch()\toString()\equals()...
方法的申明:权限修饰符 返回值类型 方法名(形参列表){
方法体
}
ended at No.186
to be continued…