zoukankan      html  css  js  c++  java
  • 面向对象(一)

    面向对象的思想概述

    •   类和对象是面向对象的核心概念  万物皆对象  
      • 类是对一类事物的描述,是抽象的,概念上的定义.
      • 对象是实际存在的该类事物的每一个个体,因而也称为实例(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.  上述例子的内存解析:

      

          

        

  • 相关阅读:
    JavaScript模态对话框类
    事件模块的演变(1)
    html5中可通过document.head获取head元素
    How to search for just a specific file type in Visual Studio code?
    What do 'lazy' and 'greedy' mean in the context of regular expressions?
    正则非获取匹配 Lookahead and Lookbehind ZeroLength Assertions
    regex length 正则长度问题
    Inversion of Control vs Dependency Injection
    How to return View with QueryString in ASP.NET MVC 2?
    今天才发现Google Reader
  • 原文地址:https://www.cnblogs.com/lxsfve/p/13044815.html
Copyright © 2011-2022 走看看