当前位置:

首页 > 编程开发 > Java面向对象特点与使用方法是什么

Java面向对象特点与使用方法是什么

面向过程和面向对象的区别面向过程:当事件比较简单的时候,利用面向过程,注重的是事件的具体步骤和过程,注重的是过程中的具体行为,以函数为最小单位,考虑怎么做。面向对象:注重找“参与者”,将功能封装进对象中,强调具备了功能的对象,以类/对象为最小单位,考虑谁来做。案例:小明从冰箱里拿东西面向过程:面向对象:面向过程—>面向对象,其实就是由执行者—>指挥者的一个过渡类和对象的关系万物皆对象对象:具体的事物,具体的实体,具体的实例,模板下具体的产品类:对对象向上抽取出像的部分,公布部分,形

本文目录

    面向过程和面向对象的区别

    面向过程:当事件比较简单的时候,利用面向过程,注重的是事件的具体步骤和过程,注重的是过程中的具体行为,以函数为最小单位,考虑怎么做。

    面向对象:注重找“参与者”,将功能封装进对象中,强调具备了功能的对象,以类/对象为最小单位,考虑谁来做。

    案例:小明从冰箱里拿东西

    面向过程:

    Java面向对象特点与使用方法是什么

    面向对象:

    Java面向对象特点与使用方法是什么

    面向过程 —> 面向对象 , 其实就是由执行者 —> 指挥者的 一个过渡

    类和对象的关系

    万物皆对象

    对象:具体的事物,具体的实体,具体的实例,模板下具体的产品

    类:对对象向上抽取出像的部分,公布部分,形成类,类是抽象的,是一个模板,一般在写代码的时候先写类,然后再根据类创建对应的对象

    类是对象的抽象,对象是类的实例化

    Java面向对象特点与使用方法是什么

    类和对象的创建

    类的创建

    1.属性(field 成员变量)

    属性用于定义该类或该类对象包含的数据或者说静态特征。属性作用范围是整个类体。

    属性定义格式:

    [修饰符] 属性类型 属性名 = [默认值];

    2.方法

    方法用于定义该类或该类实例的行为特征和功能实现。方法是类和对象行为特征的抽象。方法很类似于面向过程中的函数。面向过程中,函数是最基本单位,整个程序由一个个函数调用组成。面向对象中,整个程序的基本单位是类,方法是从属于类和对象的。

    方法定义格式:

    [修饰符] 方法返回类型 方法名(形参列表){

    //Java语句

    }

    我们以上面王者荣耀英雄类创建为例:

    //创建英雄类
    public class Hero {
        //属性
        String Name;//英雄姓名
        int Survive;//生存能力
        int Attack;//攻击伤害
        int Skill;//技能效果
        int Difficulty;//上手难度
    
        //技能
        public void Kill(int number){
            //根据输入的数字释放几技能
            System.out.println(Name+"释放"+number+"技能!!!");
        }
        //输出该英雄的属性
        public void print(){
            System.out.println("英雄:"+Name);
            System.out.println("生存能力:"+Survive);
            System.out.println("攻击伤害:"+Attack);
            System.out.println("技能效果:"+Skill);
            System.out.println("上手难度:"+Difficulty);
        }
    
    }

    对象的创建

    接下来我们对我们创建好的类来创建对象

    public class TestCode01 {
        //main方法,程序的入口
        public static void main(String[] args) {
            //创建一个对象(英雄)-->马克波罗
            Hero make = new Hero();
            make.Name = "马克波罗";
            make.Survive = 4;
            make.Attack = 6;
            make.Skill = 6;
            make.Difficulty = 5;
            //再创建一个英雄-->澜
            Hero lan = new Hero();
            lan.Name = "澜";
            lan.Survive = 3;
            lan.Attack = 5;
            lan.Skill = 4;
            lan.Difficulty = 6;
            lan.Kill(1);
            //输出两个英雄的属性
            make.print();
            System.out.println("-------------");
            lan.print();
            //释放技能
            make.Kill(3);
            System.out.println("-------------");
            lan.Kill(2);
        }
    }

    结果: 每个英雄都有相同的属性,每个属性又有不同的值,通过类我们可以创建很多个对象,每个对象又有不同的属性值。

    比如:王者里的一百多个英雄,每个都有不同的特点。

    Java面向对象特点与使用方法是什么

    创建对象的过程:

    (1)在第一次遇到一个类的时候,对这个类要进行加载,只加载一次。

    (2)创建对象,在堆中开辟空间

    (3)对对象进行初始化操作,属性赋值都是默认的初始值。

    (4)new关键字调用构造器,执行构造方法,在构造器中对属性重新进行赋值

    构造器

    对象都是new出来的,new关键字实际上在调用一个方法,这个方法叫做构造方法(构造器)

    调用构造器的时候,如果你的类中没有写构造器,那么系统会默认给你分配一个构造器(空构造器)

    构造方法格式:

    [修饰符] 构造器名字(){

    }

    构造器和方法的区别:

    • 没有方法的返回值

    • 方法体内部不能有return语句

    • 构造器的名字很特殊,必须跟类名一致

    构造器的作用:不是为了创建对象,因为在调用构造器之前,这个对象就已经创建好了,并且属性有默认的初始化的值。

    调用构造器的目的是给属性进行赋值操作的。

    注意:我们一般不会在空构造器中进行初始化操作,因为那样的话每个对象的属性就一样了。

    下面例子:

    class Hero{
        //属性
        String Name;//英雄姓名
        int Survive;//生存能力
        int Attack;//攻击伤害
        int Skill;//技能效果
        int Difficulty;//上手难度
    
        public Hero(){
            Survive=4;
            Attack=5;
            Skill=6;
            Difficulty=7;
        }
        public void print(){
            System.out.println("英雄:"+Name);
            System.out.println("生存能力:"+Survive);
            System.out.println("攻击伤害:"+Attack);
            System.out.println("技能效果:"+Skill);
            System.out.println("上手难度:"+Difficulty);
        }
    }
    public class TestCode01 {
        public static void main(String[] args) {
            //创建两个英雄对象
            Hero make = new Hero();
            make.Name="马克";
            Hero lan=new Hero();
            lan.Name="澜";
            //输出两个属性
            make.print();
            lan.print();
        }
    }

    因为我们在构造器里面赋值了,所以我们创建对象的时候属性就一样了

    Java面向对象特点与使用方法是什么

    实际上,我们只要保证空构造器的存在就可以了,里面的东西不用写,我们要用构造器赋值就要对构造器重载

    构造器重载

    一般保证空构造器的存在,空构造器中一般不会进行属性的赋值操作

    Java面向对象特点与使用方法是什么

    一般我们会重载构造器,在重载的构造器中进行属性赋值操作

    Java面向对象特点与使用方法是什么

    在重载构造器以后,假如空构造器忘写了,系统也不会给你分配默认的空构造器了,那么你要调用的话就会出错了。所以我们重载构造器时,一般要保留默认构造器

    Java面向对象特点与使用方法是什么

    当形参名字和属性名字重名的时候,会出现就近原则:在要表示对象的属性前加上this.来修饰 ,因为this代表的就是你创建的那个对象

    Java面向对象特点与使用方法是什么

    this的使用

    this就是指当前的对象

    this可以修饰属性

    当属性名字和形参发生重名的时候,或者 属性名字 和局部变量重名的时候,都会发生就近原则,所以如果我要是直接使用变量名字的话就指的是离的近的那个形参或者局部变量,这时候如果我想要表示属性的话,在前面要加上:this.修饰(如果不发生重名问题的话,实际上你要是访问属性也可以省略this.)

    Java面向对象特点与使用方法是什么

    this修饰方法

    在同一个类中,方法可以互相调用,this.可以省略不写。

    Java面向对象特点与使用方法是什么

    this可以修饰构造器

    同一个类中的构造器可以相互用this调用,注意:this修饰构造器必须放在第一行

    Java面向对象特点与使用方法是什么

    static修饰

    static可以修饰:属性、方法、代码块、内部类

    static修饰属性

    在类加载的时候,会将静态内容也加载到方法区的静态域中,静态的内容先于对象存在,并且这个静态内容被所有该类的对象共享。

    • 在类加载的时候一起加载入方法区中的静态域中

    • 先于对象存在

    • 访问方式: 对象名.属性名 类名.属性名(推荐)

    Java面向对象特点与使用方法是什么

    static修饰属性的应用场景:某些特定的数据想要在内存中共享,只有一块 -->这个情况下,就可以用static修饰的属性。

    static修饰方法:

    • static和public都是修饰符,并列的没有先后顺序,先写谁后写谁都行

    • 在静态方法中不能使用this关键字

    • 在静态方法中不能访问非静态的方法

    • 在静态方法中不能访问非静态的属性

    • 静态的方法可以用 对象名.方法名去调用 也可以 用 类名.方法名 (推荐)

    • 在同一个类中可以直接调用静态方法

    Java面向对象特点与使用方法是什么

    代码块

    代码块的分类: 普通块、构造块、静态块、同步块(多线程)

    代码块执行顺序: 最先执行静态块–>再执行构造块,(不常用)–>再执行构造器–>再执行方法中的普通块

    public class Test {
        //属性
        int a;
        static int sa;
        //方法
        public void a(){
            System.out.println("-----a");
            {
                //普通块限制了局部变量的作用范围
                System.out.println("这是普通块");
                System.out.println("----000000");
                int num = 10;
                System.out.println(num);
            }
    
        }
        public static void b(){
            System.out.println("------b");
        }
        //构造块
        {
            System.out.println("------这是构造块");
        }
        //静态块
        static{
            System.out.println("-----这是静态块");
            //在静态块中只能方法:静态属性,静态方法
            System.out.println(sa);
            b();
        }
        //构造器
        public Test(){
            System.out.println("这是空构造器");
        }
        public Test(int a){
            this.a = a;
        }
        //这是一个main方法,是程序的入口:
        public static void main(String[] args) {
            Test t = new Test();
            t.a();
            Test t2 = new Test();
            t2.a();
        }
    }

    包(import)

    包的作用: 为了解决重名的作用,解决权限问题

    包名的定义:

    • 名字全部小写

    • 中间用.隔开

    • 一般都是公司域名倒着写:com.jd 、com.taobao

    • 加上模块名字 :com.taobao.login

    • 不能使用系统中的关键字:null

    • 包声明的位置一般都在非注释代码的第一行

    Java面向对象特点与使用方法是什么

    导包:

    (1)使用不同包下的类要需要导包, 例如:import java.util.Date;

    (2)在导包以后,还想用其他包下同名的类,就必须要手动自己写所在的包。

    (3)同一个包下的类想使用不需要导包,可以直接使用。

    (4)在java.lang包下的类,可以直接使用无需导包

    (5)可以直接导入*:

    静态导入:

    //静态导入:
    import static java.lang.Math.*;
    //导入:java.lang下的Math类中的所有静态的内容
    
    public class Test {
        //这是一个main方法,是程序的入口:
        public static void main(String[] args) {
            System.out.println(random());
            System.out.println(PI);
            System.out.println(round(5.6));
        }
        //在静态导入后,同一个类中有相同的方法的时候,会优先走自己定义的方法。
        public static int round(double a){
            return 1000;
        }
    }
    本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系bd@zhengruan.com
    作者最新文章
    编程开发 Java
    相关文章 更多
    Java单元测试入门:使用JUnit 5编写第一个测试用例
    Java单元测试入门:使用JUnit 5编写第一个测试用例

    面向初学者的JUnit 5实用入门指南。从测试概念、Maven依赖配置,到手把手编写首个单元测试用例及断言验证,助你掌握Java单元测试的核心流程。

    Java变量未初始化报错解析:局部变量与成员变量默认值差异
    Java变量未初始化报错解析:局部变量与成员变量默认值差异

    深入解析Java中局部变量未初始化编译报错与成员变量自动赋予默认值的机制差异,涵盖JVM内存分配、编译期确定性赋值检查与实际排查修复方案。

    Java获取当前时间并格式化输出:DateTimeFormatter与SimpleDateFormat
    Java获取当前时间并格式化输出:DateTimeFormatter与SimpleDateFormat

    详细讲解在Java中获取当前系统时间并进行格式化输出的两种核心方案:基于Java 8全新日期时间API的DateTimeFormatter与传统遗留的SimpleDateFormat,包含完整代码示例、线程安全机制对比及生产选型建议。

    Java中final与static final常量的定义及初始化规则
    Java中final与static final常量的定义及初始化规则

    深入解析Java中final变量与static final常量的定义、内存语义、初始化时机及合法赋值路径,涵盖编译期常量优化与实战避坑指南。

    Java抽象方法与接口方法的区别及选型建议
    Java抽象方法与接口方法的区别及选型建议

    深入对比Java中抽象类抽象方法与接口方法的语法演进、设计意图及运行期差异,并提供清晰的架构选型决策流程与实战范例。

    Java实现HTTP请求与JSON解析的完整代码示例
    Java实现HTTP请求与JSON解析的完整代码示例

    本文提供Java标准库HttpClient发起HTTP GET/POST请求并结合Jackson进行JSON数据反序列化与序列化的完整代码示例与工程实践指南。

    Java递归出现StackOverflowError的原因分析及栈空间优化方案
    Java递归出现StackOverflowError的原因分析及栈空间优化方案

    详细分析Java递归调用出现StackOverflowError的原因,结合代码说明线程栈、栈帧和递归深度之间的关系,并介绍终止条件排查、迭代改写、减少栈帧开销以及通过-Xss调整JVM栈空间的方法。

    Java空指针异常(NPE)的代码排查与修复实例
    Java空指针异常(NPE)的代码排查与修复实例

    针对Java中常见的NullPointerException(NPE),本文从堆栈日志定位、典型代码触发场景、具体修复代码对比到防御体系进行系统讲解,提供实用且易上手的排查与修复方案。

    selenium上传文件教程本地文件路径设置方法
    selenium上传文件教程本地文件路径设置方法

    深入解析Selenium处理文件上传的技术细节,涵盖标准HTML控件的路径直接注入法与非标准控件的系统级模拟方案,提供Windows与Linux环境下的路径设置最佳实践及常见异常排查。

    大数据开发语言选型:Java对比Scala与Python的优缺点及适用场景
    大数据开发语言选型:Java对比Scala与Python的优缺点及适用场景

    针对大数据工程场景,系统对比Java、Scala与Python在执行性能、生态结合、开发效率和维护成本上的核心差异,给出清晰的架构选型依据与落地方案。

    查看更多
    精品专题 更多
    装机必备
    装机必备

    正软商城装机必备专区,精选办公、浏览器、安全防护、影音播放、压缩解压、设计创作和系统工具等电脑常用正版软件,帮助用户快速完成新电脑软件配置。

    Windows
    Windows

    正软商城Windows软件专区,汇集适用于Windows电脑的办公、设计、安全防护、影音播放、开发工具和系统优化软件,提供软件介绍、系统要求、正版授权及购买下载服务。

    PDF教程
    PDF教程

    正软商城PDF教程频道提供PDF编辑、转换、合并、拆分、压缩及格式处理方法,同时介绍常用PDF软件和工具的使用技巧。

    Mac软件 更多
    讯飞智作 网页版
    讯飞智作 网页版
    Windows/ macOS/ Linux

    讯飞智作是一款基于语音合成技术、虚拟人驱动技术与数字人形象声音构建能力的 AI 数字人音视频创作平台。

    火山引擎 网页版
    火山引擎 网页版
    Windows/ macOS/ Linux

    火山引擎是字节跳动旗下企业级云与AI服务平台。聚焦大模型核心能力,依托字节自研豆包多模态大模型,凭借火山方舟一站式平台,提供模型精调、推理部署、智能应用搭建等全链路服务,结合高性能AI算力,助力各行业快速落地大模型数字化与智能化应用。

    Aperty macOS版
    Aperty macOS版
    macOS

    Aperty 是 Skylum 推出的 AI 人像修图软件,支持自然肤质修饰、瑕疵处理、面部与身体调整、预设及批量同步。

    WINDOWS 更多
    讯飞智作 网页版
    讯飞智作 网页版
    Windows/ macOS/ Linux

    讯飞智作是一款基于语音合成技术、虚拟人驱动技术与数字人形象声音构建能力的 AI 数字人音视频创作平台。

    火山引擎 网页版
    火山引擎 网页版
    Windows/ macOS/ Linux

    火山引擎是字节跳动旗下企业级云与AI服务平台。聚焦大模型核心能力,依托字节自研豆包多模态大模型,凭借火山方舟一站式平台,提供模型精调、推理部署、智能应用搭建等全链路服务,结合高性能AI算力,助力各行业快速落地大模型数字化与智能化应用。

    PixTV 网页版
    PixTV 网页版
    Windows

    PixTV 是一款在浏览器中使用的 AI 视觉内容创作平台,提供图片、视频、音频、文字生成、AI 分镜、局部重绘、提示词反推和无限画布等工具,适合短剧、漫剧、广告及社交媒体内容制作。