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):构造方法的名字一定要和类名相同

 

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

 

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


目录
相关文章
|
2月前
|
设计模式 网络协议 数据可视化
Java 设计模式之状态模式:让对象的行为随状态优雅变化
状态模式通过封装对象的状态,使行为随状态变化而改变。以订单为例,将待支付、已支付等状态独立成类,消除冗长条件判断,提升代码可维护性与扩展性,适用于状态多、转换复杂的场景。
294 0
|
3月前
|
安全 Java 数据建模
Java记录类:简化数据载体的新选择
Java记录类:简化数据载体的新选择
244 101
|
3月前
|
安全 Java 开发者
Java记录类:简化数据载体的新方式
Java记录类:简化数据载体的新方式
293 100
|
4月前
|
安全 IDE Java
Java记录类型(Record):简化数据载体类
Java记录类型(Record):简化数据载体类
431 143
|
2月前
|
存储 Java 索引
用Java语言实现一个自定义的ArrayList类
自定义MyArrayList类模拟Java ArrayList核心功能,支持泛型、动态扩容(1.5倍)、增删改查及越界检查,底层用Object数组实现,适合学习动态数组原理。
105 4
|
2月前
|
IDE JavaScript Java
在Java 11中,如何处理被弃用的类或接口?
在Java 11中,如何处理被弃用的类或接口?
186 5
|
2月前
|
JSON 网络协议 安全
【Java】(10)进程与线程的关系、Tread类;讲解基本线程安全、网络编程内容;JSON序列化与反序列化
几乎所有的操作系统都支持进程的概念,进程是处于运行过程中的程序,并且具有一定的独立功能,进程是系统进行资源分配和调度的一个独立单位一般而言,进程包含如下三个特征。独立性动态性并发性。
172 1
|
2月前
|
Java Go 开发工具
【Java】(8)正则表达式的使用与常用类分享
正则表达式定义了字符串的模式。正则表达式并不仅限于某一种语言,但是在每种语言中有细微的差别。
229 1
|
2月前
|
存储 Java 程序员
【Java】(6)全方面带你了解Java里的日期与时间内容,介绍 Calendar、GregorianCalendar、Date类
java.util 包提供了 Date 类来封装当前的日期和时间。Date 类提供两个构造函数来实例化 Date 对象。第一个构造函数使用当前日期和时间来初始化对象。Date( )第二个构造函数接收一个参数,该参数是从1970年1月1日起的毫秒数。
179 0
|
2月前
|
JSON 网络协议 安全
【Java基础】(1)进程与线程的关系、Tread类;讲解基本线程安全、网络编程内容;JSON序列化与反序列化
几乎所有的操作系统都支持进程的概念,进程是处于运行过程中的程序,并且具有一定的独立功能,进程是系统进行资源分配和调度的一个独立单位一般而言,进程包含如下三个特征。独立性动态性并发性。
197 1