美文网首页
Java 面向对象-类和对象

Java 面向对象-类和对象

作者: 持续5年输出bug | 来源:发表于2021-08-19 19:51 被阅读0次

一、类和对象的概念:

对象:是类的实例化表现,有状态和行为;
:是一个模版,描述一类对象的行为和状态,用来确定对象将会拥有何种属性和方法

从计算机世界角度看所有的信息都是数据,所以也可以理解对象是一种特定的数据类型,而类就是对象的类型。

一个类可以拥有多个方法,也可包含以下类型的变量:
在下面的例子中:test()、Demo()(无参构造方法)都是 Demo 类的方法。

  • 局部变量 在方法、构造方法、语句块中定义的变量叫做局部变量,局部变量声明和初始化都在方法(语句块)中,方法(语句块)结束后,变量就自动销毁。
// java 代码示例
public class Demo {
   public void Test(){
       String name= "方法中的局部变量"; // 局部变量,定义在 test() (普通)方法中
   }

    public Demo(){
       String name="构造方法中的局部变量"; // 局部变量,定义在(无参)构造方法 Demo 中
    }

    {
      String name="代码块中的局部变量"; 
     // System.out.println("我是一段代码块")
    }
}
  • 成员变量 定义在类中,方法体之外的变量,成员变量可以被类中的方法、构造方法和特定类的语句块访问,成员变量在创建对象时实例化。

注:类的5种成员:成员变量、方法、构造器、初始化块、内部类(包括接口、枚举)

// java 代码示例
public class Demo {
 String name; // 成员变量,定义在 test() 方法体之外,在 Demo 这个 class 中
   public void Test(){
      // 代码
   }
}
  • 类变量 类变量也声明在类中,方法体之外,但是必须声明为 static 类型
// java 代码示例
public class Demo {
static name ch='c';; // 类变量,定义在 test() 方法体之外,在 Demo 这个 class 中且类型是 static
   public void Test(){
      // 代码
   }
}

二、创建类和实例化类:

包名的规范:英文字母小写,域名倒叙+功能模块名。如:com.company.demo
单一职责原则:一个类有且只有一个引起功能变化的原因,即一个类只负责一个功能,一个类中承载的功能越多,被复用的可能性就越低,耦合性就越差。

package com.company.demo; // 包名 必须在第一行
// java 代码示例
public class Demo{
String name; // 成员属性
  public void name(){ // 成员方法
    // 代码
  }
}

// 注意 根据单一职责(功能)原则 前后两段代码不是在同一个类中的
package com.company.demo; // 包名 必须在第一行

public class DemoTest(){ // 这个类名叫做 DemoTest
     public static void main(String[] args){ //主方法
        Demo demo = new Demo(); // 实例化对象
      }
}

以上代码 Demo demo = new Demo(); 实际上是对象创建的过程,包括声明和实例化对象两个部分:
1.Demo demo 声明对象,这个过程是在栈中开辟了一块区域 叫做 demo
2.new Demo() 实例化对象 这个过程是在内存的堆空间开辟了一块空间完成了对象具体的初始化
3.最后通过 = 将两者进行关联,即将堆空间的地址放到了栈demo里。
注意:java中每次实例化对象即使实例化完全相同 都在是堆中开辟一块全新的区域。即修改其中任何一个对象的属性值,不会影响另外一个的属性值,代码如下:

package com.company.demo;
public class Demo {
    String name ;
}
package com.company.demo;
public class DemoTest {
    public  static  void main(String [] args){
        Demo demo1 = new Demo();
        demo1.name="第一个name";
        System.out.println(demo1.name);

        System.out.println("---------------");
        Demo demo2 = new Demo();
        demo2.name="第二个name";
        System.out.println(demo2.name);
    }
}
      打印结果如下
      第一个name
      ---------------
      第二个name

当修改demo2.name的值时,demo1.name并不会一起变化

package com.company.demo;
public class DemoTest {
    public  static  void main(String [] args){
        Demo demo1 = new Demo();
        demo1.name="第一个name";
        System.out.println(demo1.name);

        System.out.println("---------------");
        Demo demo2 = new Demo();
        demo2.name="第二个name,但是我改变了";
        System.out.println(demo2.name);
    }
}
      // 打印结果如下:
      第一个name
      ---------------
      第二个name,但是我改变了

      // 如果要让demo2的值等于demo1,直接赋值即可
       Demo demo1 = new Demo();
       Demo demo2 = demo1;

相关文章

  • Java类和对象

    Java类和对象 类 面向对象和面向过程 面向对象:Object Oriented把系统中需要处理的数据和这些数据...

  • 3. Java面向对象编程

    类与对象[1] Java是面向对象的汇编语言(面向机器)—— c语言(面向过程)—— java语言(面向对象) 类...

  • 《Java核心技术卷 I》之 Java对象与类

    Java对象与类 面向对象程序设计 面向对象程序设计,简称OOP,Java语言就是完全面向对象的。 类 类(cla...

  • Java面向对象概述和三大特性

    Java 是面向对象的高级编程语言,类和对象是 Java 程序的构成核心。围绕着 Java 类和 Java 对象,...

  • 学习Java编程面向对象的五大基本原则

    Java 是面向对象的高级编程语言,类和对象是 Java 程序的构成核心。围绕着 Java 类和 Java 对象,...

  • Java程序员必修内功心法!(内功修炼第二层)

    1,Java 面向对象 1.1类和对象 1.1.1. 面向对象和面向过程的区别 1,面向过程 :面向过程性能比面向...

  • Java面向对象笔记(上)

    # Java面向对象笔记(上) # ---------- ## 类和对象 ## 1.类(人类)是对象(张三)的抽象...

  • Java对象和类

    Java 对象和类 Java作为一种面向对象语言。支持以下基本概念: 对象:对象是类的一个实例,有状态和行为。 类...

  • Java面向对象(类和对象)

    1.编程思想-如何理解面向对象和面向过程 面向过程就是分析出解决问题所需要的步骤,然后用函数把这些步骤一步一步实现...

  • Java 面向对象-类和对象

    一、类和对象的概念: 对象:是类的实例化表现,有状态和行为;类:是一个模版,描述一类对象的行为和状态,用来确定对象...

网友评论

      本文标题:Java 面向对象-类和对象

      本文链接:https://www.haomeiwen.com/subject/xsyabltx.html