• 面向对象(一)


    面向对象的思想概述

    •   类和对象是面向对象的核心概念  万物皆对象  
      • 类是对一类事物的描述,是抽象的,概念上的定义.
      • 对象是实际存在的该类事物的每一个个体,因而也称为实例(instance)
    • 万物皆对象
    • 类:抽象概念的人       对象:实实在在的某个人
    • 面向对象程序的设计的重点是   类的设计
    • 类的设计 ,   就是类的成员的设计

      

    java类及类的成员

      一.对象的创建如何使用

        1.属性:对应类中的成员变量(属性=成员变量=field=域,字段)

          2.行为:就是类中的成员方法(方法=成员方法=函数=method)

      

      二 类和对象的使用

        1.类是引用数据类型,所以需要通过new 关键字来创建

        person类:(创建类,设计类的成员)

    class Person {
      // 属性
      String name;
      int age = 1;
      boolean isMale;
    
      // 方法
      public void eat() {
        System.out.println("吃饭!!");
      }
    
      public void sleep() {
        System.out.println("睡觉");
      }
    
      public void talk(String language) {
        System.out.println("我们可以用" + language + "进行交流");
      }
    }
    

      2.再创建一个Java的测试类  PersonTest   (创建类的对象)

    //测试类
    public class PersonTest { public static void main(String[] args) { // 创建Person 类的对象 Person p1 = new Person(); // 调用对象的结构(属性,方法) // 调用属性 对象.属性 p1.name = "Tom"; System.out.println(p1.name); // 调用方法 对象.方法 p1.eat(); p1.sleep(); p1.talk("chinese"); } }

      3.通过"对象.属性"或者"对象.方法"调用对象的结构

      注意:   

        1.每new 一次就创建了另一个对象    每一个对象都独立的拥有一套类的属性(属性   非static),意味着修改一个对象的属性a,不影响另一个对象的属性a的值.

    Person p2 = new Person();
        System.out.println(p2.name);   //null     初始有默认值
    

      

        2.

    Person p3 = p1;     //将对象p1的地址值  赋给变量p3     导致p1,p3指向堆空间中的同一个位置
    System.out.println(p3.name);
    p3.age = 10;
    System.out.println(p1.age);

      三 类中属性(成员变量)    vs局部变量

          1.相同点:

          • 定义变量的格式   数据类型  变量名  =变量值
          • 先声明 后使用
          • 变量都有其作用域                    

          2.不同点:

          • 在类中声明的位置不同
            •   属性:直接定义在类的一对括号内.
            •         局部变量:声明在方法内,方法参数,代码块内,构造器内部的的变量 
          • 关于权限修饰符的不同
            •   属性:可以在声明属性的时候  指明其权限,使用权限修饰符
            •   局部变量  不可以使用权限修饰符
          • 默认初始化值得情况
            •   属性:类的属性  根据其类型,都有默认初始化值
              • 整形(byte,short,int,long)  0
              • 浮点型(float,double)  0.0
              • 字符型(char)   0(或者 u0000)
              • 布尔型(boolean)   false
              • 引用数据类型(类,接口,数组)   null  
            •   局部变量在调用是时候进行赋值即可.   
          • 内存中加载得位置
            •   属性:加载到堆空间(非  static)
            •   局部变量:加载到栈空间       

        

    对象的内存解析:

      内存解析:

         1.  堆:存放对象的实例.

            栈:存储局部变量

            方法区:类的信息,常量,静态变量,即时编译器编译后的代码.

         2.  上述例子的内存解析:

      

          

        

  • 相关阅读:
    里氏替换原则
    开闭原则
    Java Swing 介绍
    redis发布订阅模式
    Spring Cloud Bus消息总线+rabbitmq+Gradle(Greenwich.RELEASE版本)
    文档对象模型(DOM)系列三:处理元素属性
    文档对象模型(DOM)系列二:在DOM元素间移动
    文档对象模型(DOM)系列一:DOM基础
    深入理解javascript中的this 关键字(转载)
    javascript中的函数
  • 原文地址:https://www.cnblogs.com/lxsfve/p/13044815.html
Copyright © 2020-2023  润新知