回到宋红康的面向对象

    java类及类的成员:属性、方法、构造器;代码块、内部类
    面向对象的三大特征:封装、继承、多态、(抽象性)
    其他关键字: this\super\static\final\abstract\interface\package\import

    以“人把大象装进冰箱”为例
    面向对象:强调具备了功能的对象,以类、对象为最小单位,
    考虑谁来做,什么对象有什么样的功能,然后实体化一个对象,
    再调用相应的功能

    面向对象的要素:类、对象
    下面的代码就是一个典型的面向对象示例

    1. package code_learn_day10.demo01;
    2. /*
    3. 属性 = 成员变量 = field = 域、字段
    4. 方法 = 成员方法 = 函数 = method
    5. */
    6. public class PersonTest {
    7. public static void main(String[] args) {
    8. //创建Person类的对象,等同于实例化
    9. Person p1 = new Person();
    10. //调用对象的结构:属性、方法
    11. //调用属性:“对象.属性”
    12. p1.name = “睿酱”;
    13. p1.isMale = false;
    14. p1.isVirgin = false;
    15. p1.age = 23;
    16. System.out.println(p1.name);
    17. //调用方法:“对象.方法“
    18. p1.eat();
    19. p1.sleep();
    20. p1.age();
    21. p1.isVirg();
    22. }
    23. }
    24. class Person {
    25. // 属性
    26. String name;
    27. int age;
    28. boolean isMale;
    29. boolean isVirgin;
    30. // 方法
    31. public void eat() {
    32. System.out.println(“人可以吃饭”);
    33. }
    34. public void sleep() {
    35. System.out.println(“人可以睡觉”);
    36. }
    37. public void talk(String language) {
    38. System.out.println(“人可以说话,使用的是” + language);
    39. }
    40. public void age(){
    41. System.out.println(this.name + this.age + “岁”);
    42. }
    43. public void isVirg() {
    44. if (isVirgin) {
    45. if (isMale) {
    46. System.out.println(this.name + “是个处男”);
    47. } else {
    48. System.out.println(this.name + “是个处女”);
    49. }
    50. } else {
    51. System.out.println(this.name + “不是处”);
    52. }
    53. }
    54. }

    输出:
    image.png

    类中属性的使用

    属性(成员变量)VS局部变量
    1、相同点:
    1.1 定义变量的格式:数据类型 变量名 = 变量值
    1.2 先声明,后使用
    1.3 变量都有其声明所在的作用域

    2、不同点:
    2.1 在类中声明的位置不同
    属性:直接定义在类的一堆{}内
    局部变量:申明在方法内、方法形参、代码块内、构造器形参、构造器内部的变量

    1. 2.2 关于权限修饰符的不同<br /> 属性:可以在声明属性时,指明其权限,使用权限修饰符<br /> 常用的修饰符:private\public\缺\protected<br /> 局部变量:不能使用权限修饰符
    2. 2.3 默认初始化值的情况:<br /> 属性:类的属性,根据其类型,都有默认初始化值<br /> 整形(byte\short\int\long):0<br /> 浮点型(float\double):0<br /> 字符型(char):0(或'\u0000')<br /> 布尔型(boolean):false<br /> 引用数据类型(类、数组、接口):null
    3. 局部变量:没有默认初始化值。<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…