04_面向对象

04【面向对象、封装、static】 一、面向对象 1.1 面向对象概述 1.1.1 什么是对象 在Java中,对象(Object)是指一个具体事物的实例,任何事物都可以使用对象(类)来描述,如猫、狗、计算机、杯子、云、水、空气、叶子、灰尘等看得见的、看不见的、宏观的、微观的、具体的、抽象的都是对象,总之"万物皆对象"; 1.1.2 面向对象程序设计 我们前面就提到过,Java是一门面向对象的编程语言,面向对象是一种程序设计思想,与之对应的还有面向过程程序设计;面向对象是把一个对象的特征(属性)和行为单独封装到对象 阅读详情

面向对象

创建与使用对象
// 定义Student类
class Student {
    String name;
    int age;
    int studentId;

    public void get() {
        System.out.println("姓名:" + name + " 年龄:" + age + " 学号:" + studentId);
    }
}

// 定义HelloWorld类
public class HelloWorld {
    // 程序入口 main
    public static void main(String[] args) {

        Student obj = new Student();  // 创建对象
        obj.get();  // null, 0, 0

        // 修改对象的属性值
        obj.name = "Peter";
        obj.age = 16;
        obj.studentId = 1024255;
        obj.get();  // Peter, 16, 1024255
    }
}
注意事项
  • 类名建议使用英文,首字母大写,满足驼峰模式,例如:Student、Human
  • 类中定义的变量也称为成员变量(对象的属性),类中定义的方法也称为成员方法(对象的行为)
  • 在定义类的时候,成员变量本身存在默认值,一般情况下没必要自己去赋予初始值,除非有特殊需要
  • 一个代码文件中,可以写多个 class 类,但是只能有一个类可以使用 public 装饰,且被 public 装饰的类名必须成为该代码文件的文件名
  • 如果某对象没有一个变量去引用它,则该对象无法被操作了,该对象会成为所谓的垃圾对象
  • Java 存在自动垃圾回收机制,会自动清除掉垃圾对象,我们不用太担心
面向对象的其他知识
  • this : 主要用于解决变量名称冲突问题
public class HelloWorld {
    public static void main(String[] args) {

        Student obj = new Student();
        System.out.println("姓名:" + obj.name + " 年龄:" + obj.age + " 学号:" + obj.studentId);

        obj.setAttr("Gogo", 33, 1024255);
        System.out.println("姓名:" + obj.name + " 年龄:" + obj.age + " 学号:" + obj.studentId);
        // 运行结果:
        // 姓名:null 年龄:0 学号:0
        // 姓名:Gogo 年龄:33 学号:1024255
    }
}

class Student {
    String name;
    int age;
    int studentId;

    public void setAttr(String name, int age, int studentId) {
        this.name = name;
        this.age = age;
        this.studentId = studentId;
    }
}

构造器

  • 构造器特点:创建对象时,对象会去调用构造器

  • 常见应用场景:创建对象时,同时完成对对象成员变量(属性)的初始化赋值

  • 注意事项:

    • 类在设计时,如果不写构造器,Java 是会为类自动生成一个无参构造器的
    • 一旦定义了有参构造器,Java 就不会帮我们的类自动生成无参构造器了,此时就建议自己手写一个无参构造器,然后在那里放着,以免日后需要使用到无参构造器,却又没有自动生成。
    public class HelloWorld {
        public static void main(String[] args) {
    
            Student obj = new Student("Peter", 20, 1024255);
            System.out.println("姓名:" + obj.name + " 年龄:" + obj.age + " 学号:" + obj.studentId);
            // 运行结果:
            // 含参构造器被触发执行了
            // 姓名:Peter 年龄:20 学号:1024255
        }
    }
    
    class Student {
        String name;
        int age;
        int studentId;
    
        // (无参)构造器  [支持重载]
        public Student() {
            System.out.println("无参构造器被触发执行了");
        }
    
        // (含参)构造器  [支持重载]
        public Student(String name, int age, int studentId) {
            System.out.println("含参构造器被触发执行了");
            this.name = name;
            this.age = age;
            this.studentId = studentId;
        }
    }
    
  • 三大特征

    • 封装 ( 合理隐藏,合理暴露 )

    • 公开成员:可以使用 public 进行修饰

    • 隐藏成员:可以使用 private 进行修饰

public class HelloWorld {
    public static void main(String[] args) {
        People jack = new People(29);
        System.out.println(jack.getAge());  // 29
        jack.setAge(56);
        System.out.println(jack.getAge());  // 56
        jack.setAge(-1); // Error! The age is incorrect!
    }
}

class People {
    private int age;  // 禁止直接访问与修改age

    public People(int age) {
        this.age = age;
    }

    // 对外提供访问、修改 age 的方法
    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        if (age > 0 && age <= 120) {
            this.age = age;
        } else {
            System.out.println("Error! The age is incorrect!");
        }
    }
}

继承:Java 基础阶段不作介绍

多态:Java 基础阶段不作介绍

C++面向对象程序设计50道编程题(第04题) C++面向对象程序设计50道编程题(第04题) 摘要:C++程序设计实习是为学生提供了一个既动手又动脑,独立实践的机会,将课本上的理论知识和实际有机的结合起来,锻炼学生的分析问题和解决问题的能力,提高学生运用所学知识解决实际问题的能力。   本专辑为编程入门者、高校计算机软件专业学习或复习提供C++程序设计题库。   读者请先独立思考哦,再与参考程序进行比对检查。 一、问题描述 二、考察内容  ... 阅读详情

相关推荐

海康VM加密狗无法识别常见问题排查

海康VM加密狗无法识别常见问题排查

视觉人机器视觉的博客 2705

java面向对象04

面向过程&面向对象 面向过程思想 步骤清晰简单 适合处理一些较为简单的问题 面向对象思想 分类的思考模式,思考问题首先会解决问题需要哪些分类,然后对这些分类进行简单独立思考。最后,才对某个分类下的细节进行面向过程的思索。 面型对象适合处理复杂的问题,适合处理需要多人协作的问题。 总结:对于复杂事物,为了从宏观上把控,从整体上合理分析,需要以面向对象的思路来分析整个系统,但是,具体到微观操作,仍然需要面向过程的思路去处理。 面向对象 本质:以类的方式组织代码,以对象的组织(封装)数据。

weixin_46726946的博客 554

vivado实现SDI接口

XAPP1249,用来介绍UHD_SDI的实现。

Huskar_Liu的博客 7076

04-python-面向对象

## 摘要 本文是Python全栈面试实战指南的面向对象编程部分,主要涵盖: 1. Python面向对象基础(类与对象定义、实例/类变量、类/静态/实例方法) 2. 面向对象三大特性(封装、继承、多态) 3. 魔术方法(__init__、__repr__等) 4. 属性访问控制(公有/保护/私有属性) 5. 类装饰器(@property等) 6. 名称改写机制(name mangling) 7. 继承与多态实现 8. 内存管理和垃圾回收 实验在华为云ECS服务器(Ubuntu 24.04)上运行,使用Pyt

cpyaxjq的博客 45

我爬取了某非法网贷后台系统数据,终于知道什么叫做利滚利滚利滚利了

我爬取了非法贷款的后台网站!

weixin_44042821的博客 2879

VS Code + ESP-IDF:离线环境配置与示例工程编译全指南

本文详细介绍了在VS Code中离线配置ESP-IDF开发环境的完整流程。针对国内开发者常遇到的网络问题,指南提供了从Python环境准备、获取离线安装包、运行安装器到VS Code插件配置与示例工程编译的全套解决方案,确保环境搭建稳定、可控且高效。

weixin_28842367的博客 402

JAVA-04面向对象

【面向过程与面向对象】 面向过程只能解决简单的问题,列出解决问题的步骤即可,但功能很大的时候,就不能用这种思想; 面向对象能够更加方便地管理资源,将属性与方法封装到类里,而方法始终需要用到面向过程的思想; 类可以看做是一个模板(抽象),系统根据类的定义来选出对象;【类】 class 类名{ 属性; int a; 方法; void fun(){ } ...

Liyunhao_haoge的博客 405

Cube生成定时器2触发双ADC同步采集并用DMA传输

前言 用cube生成一个用定时器触发ADC1,ADC2同步采集的程序,单片机选择的是STM32L476RGT6,用定时器2进行ADC采集触发,更改定时器2的定时周期便可以更改ADC的采样周期,ADC1和ADC2使用同步规则模式,并用DMA进行数据的传输。 STM32的ADC采样完成总共需要的时间是 ADC完成采样时间=采样周期+12个转换周期 举个例子,假如ADC的时钟是15MHz,采样周期是3个周期,3个采样周期加上12个转换周期,一共是15个周期,因为时钟是15MHz,所以完成一次ADC转换总共需要的时

一行代码的博客 4513

JAVASEday04面向对象

什么是面向对象 众所周知,java是一门面向对象的编程语言,但什么是面向对象呢?简单的说,面向对象是一种思想,他和面向过程是对应的,面向过程强调的是功能行为,面向对象将功能封装进对象,强调具备了并能的对象,面向对象是基于面向过程的。 有一个故事,把大象放进冰箱里,分三步:1打开冰箱,2把大象放进冰箱里 3关上冰箱,这三个动作强调的是过程,即打开动作,存储大象的动作,关闭动作,而用面向对象的思想考虑...

weixin_45295077的博客 369

电子产品的老化测试有哪些类型?

因此,越来越多的人在寻找“已知合格的测试连接器”,即经过测试具有可靠性和有效性的测试连接器,可以在老化测试中制定优化方法。例如对于芯片来说,不同的封装有不同的老化测试座,QFP老化测试座,QFN老化测试座等。老化测试时,专用老化电路板上的元件将承受等于或高于其额定工作条件的压力,以消除任何在额定寿命之前过早失效的元件。静态老化:在此类系统中,将测试设备安装到老化板上的插座中,然后放入老化箱中,其中每隔12至24小时施加电源和高温。动态老化:在动态老化系统中,设备以老化速度设定的最大速率进行测试。

软件技术的专栏 1839

PLC编程标准之争:IEC61131与IEC61499核心区别与选型指南

在工业自动化领域,PLC编程长期依赖IEC61131标准,它定义了梯形图、结构化文本等语言,通过周期扫描机制保证确定性执行。然而,随着工业4.0和分布式控制场景的兴起,IEC61499以事件驱动模型打破传统范式,让功能块能跨设备协同,实现更灵活的柔性产线和模块化系统。理解两者在程序结构、数据交互、部署方式和实时性上的差异,是选型与工程落地的关键。本文从基础概念出发,剖析执行模型与架构演进,结合一线调试经验,帮助工程师在传统PLC与下一代标准之间做出理性决策。

weixin_27014595的博客 268

面向对象04

这里写目录标题1多态1.1相关知识1.是什么1.1怎么用1.1优点1.1缺点1.1隐式多态1.1注意事项2. Instanceof3.Abstract3.1 抽象概述3.3 注意4. Interface4.1 是什么4.2 怎么用4.3 接口和抽象类 1多态 使用多态调用结果 1 父类没有的,不管子类有没有 都调用不了 2 只要父类有的,子类没有的,都执行父类的 3 父类和子类都有的时候,除了成员方法调用子类,其他都执行父类 1.1相关知识 JVM特性 : 多线程,跨平台,面向对象,自动垃圾回收机

qq_39903918的博客 335

微信小店推客分销系统源码获取与自研开发全攻略(2025年最新版)

源码选择建议快速试错:选用开源项目(如启航系统),3天可上线基础功能长期布局:购买商业源码授权,重点定制分佣规则与UI交互完全自研:适合年GMV过亿的大型企业,需前置投入风控与合规设计行动清单注册微信开放平台账号,完成视频号机构认证下载开源项目代码,部署本地测试环境联系三家源码供应商,获取合规性审计报告设计三级分佣比例表,通过法律顾问合规审查通过以上路径,可高效构建合规、稳定、高转化的微信小店推客分销系统,抢占2025年视频号电商红利。

2401_85184777的博客 1281

学习日志_04 面向对象

this:是每个对象中第一个成员变量,用于保存当前对象的内存地址this只能出现在构造方法和成员方法中,不能在静态上下文中使用abstract 修饰符,表示抽象的修饰的类 是抽象类,抽象类不能创建对象 (专门用来被继承的)修饰的方法 是抽象方法,抽象方法没有方法体(专门用来覆写的,抽象方法只存在在抽象类中)抽象方法必须在抽象类中,而抽象类中,可以没有抽象方法抽象类往往用来表示设计中得出的抽象概念:比如,动物类,自然界没有一个种族叫做动物,不能代表实体,这个时候我们称这个类为抽象类。

DA_YA_的博客 2024

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

自学python笔记04——面向对象

面向对象是更大的封装,在一个类中 封装 多个方法,这样通过这个类创建出来的对象,就可以直接调用这些方法了!在Python中要定义一个只包含方法的类,语法格式如下:class 类名:def 方法1(self, 参数列表):passdef 方法2(self, 参数列表):pass方法的定义格式和之前学习过的函数几乎一样区别在于第一个参数必须是self,大家暂时先记住,稍后介绍self类名的 命名规则 要符合大驼峰命名法在__init__方法内部使用self.属性名 = 属性的初始值就可以。

weixin_44948595的博客 804

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

04-面向对象

什么是面向对象编程和面向对象编程语言? 面向对象编程的英文缩写是OOP,全称是ObjectOrientedProgramming。对应的,面向对象便曾语言的英文缩写是OOPL,全称是ObjectOrientedProgrammingLanguage。 面向对象编程有两个非常重要、非常基础的概念,那就是类(class)和对象(object)。这两个概念最早出现在1960年,在Simula这种编程语言中第一次使用。而面向对象编程这个概念第一次被使用是...

司马世豪的博客 238

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

Python面向对象之封装(04)

前文导读 Python入门都在这了 Python之面向对象(1) Python面向对象之继承(02) Python面向对象之多态(03)   知识框架: 1.什么是封装 2.封装的优点与原则 3.私有变量和私有方法    4.封装的更多说明   什么是封装 封装是面向对象编程的一大特点,面向对象编程的第一步将属性和方法封装到一个抽象类中,外界使用类创建对象然后让对象调用方法,...

sinat_34576567的博客 420

javabasic04 面向对象01

Day04 面向对象和类 面向对象01:类和对象的创建

be_stronger的博客 193

Java基础04-面向对象

从零开始的Java教程,第四章节面向对象(上),内容包括类与对象,关键字,匿名对象,单例设计模式,代码块等等。

PengXing_Huang的博客 1189

day04【面向对象回顾、练习】

今日内容 面向对象复习 面向对象练习 教学目标 能够完成面向对象练习1 能够完成面向对象练习2 能够完成面向对象练习3 能够完成面向对象练习4 能够完成面向对象练习5 能够完成面向对象练习6 能够完成面向对象练习7 第一章 面向对象复习 1.1 如何定义类 类的定义格式如下: 修饰符 class 类名{ // 1.成员变量(属性) // 2.成员方法 (行为) // 3.构造器 (初始化类的对象数据的) } 例如: public class Stud

weixin_43525993的博客 1460

C++_04_面向对象

C++基础语法04之面向对象篇 C++ 类 & 对象 C++ 在 C 语言的基础上增加了面向对象编程,C++ 支持面向对象程序设计。类是 C++ 的核心特性,通常被称为用户定义的类型。 类用于指定对象的形式,它包含了数据表示法和用于处理数据的方法。 类中的数据和方法称为类的成员。函数在一个类内时也被称为类的成员。 C++ 类定义 定义一个类,本质

pre_eminent的JAVA学习园地 1298

04章【面向对象(上)】

类的定义class 类名称{属性名称;返回值类型 方法名称(){}对象的定义一个类要想真正的进行操作,则必须依靠对象,对象的定义格式如下:类名称 对象名称 = new 类名称();按照以上的格式就可以产生对象了。访问类中的属性:对象 . 属性;调用类中的方法:对象.方法();对象的声明在java中对象声明有两种含义声明对象:Horse horse= null;;// 表示声明了一个对象,但是此对象无法使用,horse没有具体的内存指向实例化对象:horse= new Horse();

Lenhart001的博客 846

JavaSE04 面向对象

一、什么是面向对象 万物皆对象。 对象就是一个概念,把所有的事物都称作为“对象”(没有不是对象的东西) 属性就是该事物的组成部分,所有可以被包含的部分都称为“属性”(没有不含属性的对象) 方法就是达成目标的途径,所有可行性的行为都成为方法(没有不存在方法的对象和属性,但是可以选择使用哪些方法) 举例:比如把人看成是一个对象,那么姓名,性别,生日等则是人这个对象的属性,吃饭,睡觉等行为就是人这个对象的方法。 二、类与对象 类:类是一种分类,一个类别,一个模板,它描述一类对象的行为和状态,是一组具有相同特

qq_40149038的博客 216

Day_04 面向对象

概述 对于面向对象编程的支持,Go语言设计得非常简洁而优雅。因为,Go语言并没有沿袭传统 面向对象编程中的诸多概念,比如继承(不支持继承,尽管匿名字段的内存布局和行为类似继承,但它并不是继承)、 虚函数、构造函数和析构函数、隐藏的this指针等等 尽管Go语言中没有封装、继承、多态这些概念,但同样通过别的方式实现这些特性: 封装:通过方法实现 继承:通过匿名字段实现 ...

148

java基础Day04 面向对象基础

面向对象思想 面向过程:面向过程就是分析出解决问题所需要的步骤,然后用函数把这些步骤一步一步实现,使用的时候一个一个一次调用就可以了。(c,c++) 面向对象:面向对象是把构成问题事务分解成各个对象,建立对象的目的不是为了完成某一个步骤,而是为了描述某个事务在整个解决问题的步骤中的行为。(java) 类与对象的关系: 类即类型,在java中用class表示 如:人、动物、桌子、电脑、学生、老师 对...

weixin_43663745的博客 184
上一篇: 03_Java数组与方法
下一篇: 05_常用API
code_stream
博客等级 码龄4年 1238粉丝 169原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值