Java(十五)类和对象的创建

简介: Java(十五)类和对象的创建

类和对象这个玩意真是老生常谈了,PHP是可对象可过程的,但是在java中,万物皆对象。


我们来复习一下类的定义:


类是实物的属性(外在特征)和行为(具备的功能)的集合


对象是类的具体表现(如果拿人“类”作为例子的话,那对象就是类中具体的你,我,她)

 

一:创建一个类


1:格式


Class 类名

{

      类的属性;

      类的行为;

}


2:步骤


(1):明确你创建的类的功能


(2):该类实物中有哪些属性(实物的外在特征)


(3):该类实物中有哪些行为(实物所具备的功能)

 

3:举个例子


我们来定义一个人的类


class person
{
    // 年龄
    public String age;
    // 体重
    public String weight;
    /**
     * 跑方法
     */
    public void run()
    {
        System.out.println("跑");
    }
    /**
     * 思考方法
     */
    public void think()
    {
        System.out.println("思考");
    }
}

 

二:调用类


public class T05 {
    public static void main(String[] args) {
        // 定义一个人的对象
        person xh = new person();
        // 给他的属性赋值
        xh.age = 25;
        xh.weight = 180;
        System.out.println("xh年龄:"+xh.age+" 体重:"+xh.weight);
        // 调用类的方法
        xh.think();
    }
}


以上大概就是类的调用方法,比较简单,现将类实例化一个对象,再直接.就可以了。

 

三:成员变量和局部变量


1:成员变量


定义再看类中,方法外的变量就是成员变量。


class person
{
    // 年龄
    public int age;
    // 体重
    public int weight;
}


上边的所有变量均是成员变量。

 

2:局部变量


定义在方法中,或者方法声明上的变量就是局部变量


public static void main(String[] args) {
        // two 是局部变量
        int two = sumNunber(5,2);
        System.out.println(two);
        int three = sumNunber(5,2,6);
        System.out.println(three);
    }
    /**
     * 加和(三个参数)
     * @param i 局部变量
     * @param j局部变量
     * @return
     */
    public static int sumNunber(int i,int j,int x)
    {
        return i + j + x;
    }


上边代码中的变量都是局部变量

 

3:成员变量和局部变量的区别?


1.定义位置不同

局部变量:定义在方法中或者方法的声明上

成员变量:定义在类中方法外


2.内存位置不同

局部变量:存储在栈中的方法中

成员变量:存储在堆中的对象中


3.初始值不同

局部变量:没有默认初始值,想要使用一定要先赋值在使用

成员变量:有默认初始化值,如果不赋值也可以使用

String类型的变量默认初始值nul1

int类型的变量默认初始值0

boolean类型的变量默认初始值false

double类型的变量默认初始值0.0

char类型的变量默认初始值‘\u0000'


4.生命周期不同

局部变量:因为是存储在方法中,所以是随着方法的存在而存在,随着方法的消失而消失

成员变量:因为是存储在对象中,所以是随着对象的存在而存在,随着对象的消失而消失


5.作用域范围不同

局部变量:出了方法就用不了了

成员变量:在本类中的方法中都可以使用


四:匿名对象


1:定义:没有名字的对象就是匿名对象

 

2:使用格式:

New 类名();

 

3:匿名对象如何使用属性和方法呢?

New 类名().属性名

New 类名().方法名()

 

4:匿名对象的特点

一次性(只能使用一次,因此匿名对象一般都是调用对象的方法)

 

5:匿名对象是可以作为实际参数传递的

 

五:构造方法


1:定义:方法名和类名相同,和普通方法的格式不一样的特殊方法。


2:构造方法作用:

(1):用来创建对象

(2):用来对象的属性初始化


举个小例子:


public class T05 {
    public static void main(String[] args) {
        // 定义一个人的对象
        person xh = new person(10,100);
        // 给他的属性赋值
        xh.age = 25;
        xh.weight = 180;
        System.out.println("xh年龄:"+xh.age+" 体重:"+xh.weight);
        // 调用类的方法
        xh.think();
    }
}
class person
{
    // 年龄
    public int age;
    // 体重
    public int weight;
    /**
     * 构造方法
     */
    public person(int a,int w)
    {
        age = a;
        weight = w;
    }
    /**
     * 跑方法
     */
    public void run()
    {
        System.out.println("跑");
    }
    /**
     * 思考方法
     */
    public void think()
    {
        System.out.println("思考");
    }
}


通过上方的代码我们可以看到,person类的构造方法中有两个参数,那我们实例化对象的时候就需要给其传递两个参数,否则就会报错。


3:构造方法的特点

(1):构造方法没有返回值类型

(2):构造方法由返回值

(3):构造方法有return关键字

(4):构造方法的名字一定要和类名相同

 

以上大概就是类和对象的创建。

 

有好的建议,请在下方输入你的评论。


目录
相关文章
|
15天前
|
安全 Java 编译器
Java对象一定分配在堆上吗?
本文探讨了Java对象的内存分配问题,重点介绍了JVM的逃逸分析技术及其优化策略。逃逸分析能判断对象是否会在作用域外被访问,从而决定对象是否需要分配到堆上。文章详细讲解了栈上分配、标量替换和同步消除三种优化策略,并通过示例代码说明了这些技术的应用场景。
Java对象一定分配在堆上吗?
|
12天前
|
存储 安全 Java
java.util的Collections类
Collections 类位于 java.util 包下,提供了许多有用的对象和方法,来简化java中集合的创建、处理和多线程管理。掌握此类将非常有助于提升开发效率和维护代码的简洁性,同时对于程序的稳定性和安全性有大有帮助。
36 17
|
4天前
|
安全 Java
Java多线程集合类
本文介绍了Java中线程安全的问题及解决方案。通过示例代码展示了使用`CopyOnWriteArrayList`、`CopyOnWriteArraySet`和`ConcurrentHashMap`来解决多线程环境下集合操作的线程安全问题。这些类通过不同的机制确保了线程安全,提高了并发性能。
|
8天前
|
存储 Java 程序员
Java基础的灵魂——Object类方法详解(社招面试不踩坑)
本文介绍了Java中`Object`类的几个重要方法,包括`toString`、`equals`、`hashCode`、`finalize`、`clone`、`getClass`、`notify`和`wait`。这些方法是面试中的常考点,掌握它们有助于理解Java对象的行为和实现多线程编程。作者通过具体示例和应用场景,详细解析了每个方法的作用和重写技巧,帮助读者更好地应对面试和技术开发。
41 4
|
19天前
|
Java API
Java 对象释放与 finalize 方法
关于 Java 对象释放的疑惑解答,以及 finalize 方法的相关知识。
39 17
|
9天前
|
Java 编译器 开发者
Java异常处理的最佳实践,涵盖理解异常类体系、选择合适的异常类型、提供详细异常信息、合理使用try-catch和finally语句、使用try-with-resources、记录异常信息等方面
本文探讨了Java异常处理的最佳实践,涵盖理解异常类体系、选择合适的异常类型、提供详细异常信息、合理使用try-catch和finally语句、使用try-with-resources、记录异常信息等方面,帮助开发者提高代码质量和程序的健壮性。
20 2
|
13天前
|
存储 安全 Java
如何保证 Java 类文件的安全性?
Java类文件的安全性可以通过多种方式保障,如使用数字签名验证类文件的完整性和来源,利用安全管理器和安全策略限制类文件的权限,以及通过加密技术保护类文件在传输过程中的安全。
|
17天前
|
Java 数据格式 索引
使用 Java 字节码工具检查类文件完整性的原理是什么
Java字节码工具通过解析和分析类文件的字节码,检查其结构和内容是否符合Java虚拟机规范,确保类文件的完整性和合法性,防止恶意代码或损坏的类文件影响程序运行。
|
17天前
|
Java API Maven
如何使用 Java 字节码工具检查类文件的完整性
本文介绍如何利用Java字节码工具来检测类文件的完整性和有效性,确保类文件未被篡改或损坏,适用于开发和维护阶段的代码质量控制。
|
18天前
|
存储 安全 Java
Java编程中的对象序列化与反序列化
【10月更文挑战第22天】在Java的世界里,对象序列化和反序列化是数据持久化和网络传输的关键技术。本文将带你了解如何在Java中实现对象的序列化与反序列化,并探讨其背后的原理。通过实际代码示例,我们将一步步展示如何将复杂数据结构转换为字节流,以及如何将这些字节流还原为Java对象。文章还将讨论在使用序列化时应注意的安全性问题,以确保你的应用程序既高效又安全。