面向对象编程(二)

news2024/12/27 13:27:45

面向对象(二)

类和对象的概念

  • 类是一种抽象的数据类型,它是对某一类事物整体描述/定义,但是不能代表某一个具体的事物(动物,植物,手机…)
  • 对象是抽象概念的具体实例(比如说旺财就是狗的一个具体实例)

创建和初始化对象

  • 使用new关键字创建对象
  • 使用new关键字创建的时候,除了分配内存空间之外,还会给创建好的对象进行默认的初始化以及对类中构造器的调用
  • 类中的构造器也称为构造方法,是进行创建对象时必须要调用的,并且构造器有以下两个特点
    • 必须和类的名字相同
    • 必须没有返回类型,也不能写void
  • 构造器必须要掌握

下面是关于类和对象的

package opp.demo02;
//学生类,一个类里只有属性和方法
public class Student {

    //属性:字段
    String name;//null
    int age;//0

    //方法
    public void study(){
        System.out.println(this.name+("在学习"));
    }
}
package opp.demo02;
//一个项目应该只存在一个main方法
public class Application {
    public static void main(String[] args) {
    //类:抽象的,实例化
    //类实例化后会返回自己的一个对象
    //xiaoming对象就是Student类的一个具体实例
        Student xiaoming = new Student();
        Student xh = new Student();

        xiaoming.name="小明";
        xiaoming.age=3;

        System.out.println(xiaoming.name);//未赋值之前是null
        System.out.println(xiaoming.age);

        xh.name="小红";
        xh.age=3;

        System.out.println(xh.name);
        System.out.println(xh.age);
    }
}

下面是关于构造器的

package opp.demo02;

public class Person {
    //一个类即使什么都不写,它也会存在一个方法
    //显示定义的构造器

    String name;
    int age;


    //作用:1.使用new关键字,本质是调用构造器
    //2.用来对实例化赋初始值
    //无参构造器
        public Person(){
    }
    //有参构造,一旦定义了有参构造,无参构造就一定要显示定义
    public Person(String name){
        this.name=name;
    }
    //alt+insert 快捷键生成构造器


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

    public Person(String name, int age) {
        this.name = name;
        this.age = age;
    }
}
/*
       package opp.demo02;
        //一个项目应该只存在一个main方法
      public class Application {
        public static void main(String[] args) {
      //使用new实例化了一个对象
      Person person = new Person("mishen");
      System.out.println(person.name);
           }
        }

    构造器:
      1.和类名相同
      2.没有返回值
    作用:
      1.new本质在调用构造方法
      2.初始化对象的值
    注意点:
      1.定义有参构造之后,如果想使用无参构造,必须要显示的定义一个无参的构造

      alt+insert的快捷键
      this.当前的类=参数传进来的值

 */
  • 内存分析:堆中有方法区,栈里面存放方法和引用变量,借用下狂神老师的图(o゚v゚)ノ

在这里插入图片描述

Pet(方法区)pet(栈)=new Pet()(堆)

小结
/*
1.类与对象
    类是一个模板(抽象),对象是一个具体的实例
2.方法
   定义和调用
3.对象的引用
   引用类型:除了八大基本类型以外都是
       对象是通过引用来操作的:栈--->堆
4.属性:字段Filed,成员变量
     默认初始化
     数字:0  0.0
     char:u0000
     boolean:false
     引用:null
   赋值:修饰符 属性类型 属性名=属性值
5.对象的创建和使用
    - 必须使用new关键字创建对象,必须有构造器 Person mishen=new Person()
    - 对象的属性 mishen.name
    - 对象的方法 mishen.think()
6.类
      静态的属性:属性
      动态的行为:方法
 */

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1564711.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Prometheus+grafana环境搭建redis(docker+二进制两种方式安装)(四)

由于所有组件写一篇幅过长,所以每个组件分一篇方便查看,前三篇 Prometheusgrafana环境搭建方法及流程两种方式(docker和源码包)(一)-CSDN博客 Prometheusgrafana环境搭建rabbitmq(docker二进制两种方式安装)(二)-CSDN博客 Prometheusgrafana环境搭建m…

Java基础知识总结(第八篇):集合:Collection(List、Set)、Map、Collections 工具类

声明: 1. 本文根据韩顺平老师教学视频自行整理,以便记忆 2. 若有错误不当之处, 请指出 系列文章目录 Java基础知识总结(第一篇):基础语法 Java基础知识总结(第二篇)&#x…

Matlab|计及需求侧响应日前—日内两阶段鲁棒备用优化

目录 1 主要内容 日前计划模型 日内调整模型 不确定集建模 2 部分代码 3 程序结果 4 下载链接 1 主要内容 该程序复现文章《计及需求侧响应日前—日内两阶段鲁棒备用优化》,以6节点系统为例,综合考虑风电出力不确定性与电力设备 N-k强迫停运&…

在linux下conda 创建虚拟环境失败的解决方法

报错内容一&#xff1a; Solving environment: failed CondaHTTPError: HTTP 000 CONNECTION FAILED for url <https://conda.anaconda.org/conda-forge/noarch/repodata.json> Elapsed: - An HTTP error occurred when trying to retrieve this URL. HTTP errors are…

【c++】类和对象(七)

&#x1f525;个人主页&#xff1a;Quitecoder &#x1f525;专栏&#xff1a;c笔记仓 朋友们大家好&#xff0c;本篇文章来到类和对象的最后一部分 目录 1.static成员1.1特性 2.友元2.1引入&#xff1a;<<和>>的重载2.2友元函数2.3友元类 3.内部类4.匿名对象5.拷…

servlet个人博客系统的web自动化测试(六)

1. 测试前的准备工作 获取博客系统Chrome&webDriver测试环境搭建流程 : 熟悉项目针对核心流程设计测试用例&#xff08;手工测试用例&#xff09;将手工测试用例转换成自动化测试用例部署 手工测试用例 : 自动化测试用例 代码结构设计 &#xff1a; 初始化动作&#xff1a…

最新AI工具系统ChatGPT网站运营源码SparkAi系统V6.0版本,GPTs应用、AI绘画、AI换脸、垫图混图、Suno-v3-AI音乐生成大模型全支持

一、前言 SparkAi创作系统是基于ChatGPT进行开发的Ai智能问答系统和Midjourney绘画系统&#xff0c;支持OpenAI-GPT全模型国内AI全模型。本期针对源码系统整体测试下来非常完美&#xff0c;那么如何搭建部署AI创作ChatGPT&#xff1f;小编这里写一个详细图文教程吧。已支持GPT…

银行监管报送系统介绍(十五):金融审计平台

《“十四五”国家审计工作发展规划》中重点强调&#xff0c;金融审计&#xff1a;以防范化解重大风险、促进金融服务实体经济&#xff0c;推动深化金融供给侧结构性改革、建立安全高效的现代金融体系为目标&#xff0c;加强对金融监管部门、金融机构和金融市场运行的审计。 —…

Spring API 接口和自定义类来实现AOP(Spring学习笔记十)

1、什么是AOP 全称是 Aspect Oriented Programming 即&#xff1a;面向切面编程。是OOP&#xff08;面向对象编程&#xff09;的延续&#xff0c;也是Spring框架中的一个重要内容&#xff0c;是函数式编程的一种衍生泛型。简单的说他就是把我们程序重复的代码抽取出来&#xf…

MySQL-执行计划、explain关键字查询执行计划以及explain案例分析

一、执行计划 MySQL 的执行计划&#xff08;Execution Plan&#xff09;是数据库查询优化器生成的一种指导性信息&#xff0c;它描述了 MySQL 执行查询时所采用的具体执行策略。执行计划通常由 MySQL 的查询优化器根据查询语句、表结构、索引等信息进行生成&#xff0c;并且用…

基于Docker for Windows部署ChatGPT-Next-Web

基于Docker for Windows部署ChatGPT-Next-Web 项目地址安装Docker for Windows部署项目参数讲解参数示例 运行 项目地址 https://github.com/ChatGPTNextWeb/ChatGPT-Next-Web 安装Docker for Windows 官网地址&#xff1a;https://www.docker.com/ 下拉找到Download 选择W…

Error: TF_DENORMALIZED_QUATERNION: Ignoring transform forchild_frame_id

问题 运行程序出现&#xff1a; Error: TF_DENORMALIZED_QUATERNION: Ignoring transform for child_frame_id “odom” from authority “unknown_publisher” because of an invalid quaternion in the transform (0.0 0.0 0.0 0.707) 主要是四元数没有归一化 Eigen::Quatern…

CentOS 7 下离线安装RabbitMQ教程

CentOS 7 下安装RabbitMQ教程一、做准备&#xff08;VMWare 虚拟机上的 CentOS 7 镜像 上安装的&#xff09; &#xff08;1&#xff09;准备RabbitMQ的安装包&#xff08;rabbitmq-server-3.8.5-1.el7.noarch&#xff09;下载地址mq https://github.com/rabbitmq/rabbitmq-se…

使用C++调用讯飞星火API的详细指南

正文&#xff1a; 科大讯飞是中国领先的人工智能公司&#xff0c;其讯飞星火API为开发者提供了丰富的接口和服务&#xff0c;支持各种语音和语言技术的应用。下面是使用C接入讯飞星火API的步骤和代码示例。 步骤一&#xff1a;注册账号并创建应用 首先&#xff0c;您需要访问科…

leetCode刷题 25.K 个一组翻转链表

目录 1.思路&#xff1a; 2.解题方法&#xff1a; 3.复杂度&#xff1a; 4.Code 题目&#xff1a; 给你链表的头节点 head &#xff0c;每 k 个节点一组进行翻转&#xff0c;请你返回修改后的链表。 k 是一个正整数&#xff0c;它的值小于或等于链表的长度。如果节点总数不…

Medium 级别存储型 XSS 攻击演示(附链接)

环境准备 DVWA 靶场https://eclecticism.blog.csdn.net/article/details/135834194?spm1001.2014.3001.5502 测试 打开页面 输入正常值观察 一样的&#xff0c;用户名做了长度限制 更改后输入 HTML 标签语句测试 一样没有做过滤&#xff0c;接下来试试 JS 恶意代码 发现只…

Linux(05) Debian 系统修改主机名

查看主机名 方法1&#xff1a;hostname hostname 方法2&#xff1a;cat etc/hostname cat /etc/hostname 如果在创建Linux系统的时候忘记修改主机名&#xff0c;可以采用以下的方式来修改主机名称。 修改主机名 注意&#xff0c;在linux中下划线“_”可能是无效的字符&…

zabbix图表时间与服务器时间不一致问题

部署完zabbix后&#xff0c;有时候会发现zabbix服务器的时间明明是对的&#xff0c;但是图标的时间不对&#xff0c;通过以下的配置可以快速解决。 登录zabbix-nginx容器 docker exec -u root -it docker-compose-zabbix-zabbix-web-nginx-mysql-1 bash修改php配置文件 vi /e…

合并两个单链表

归纳编程学习的感悟&#xff0c; 记录奋斗路上的点滴&#xff0c; 希望能帮到一样刻苦的你&#xff01; 如有不足欢迎指正&#xff01; 共同学习交流&#xff01; &#x1f30e;欢迎各位→点赞 &#x1f44d; 收藏⭐ 留言​&#x1f4dd; 但行前路&#xff0c;不负韶华&#…

【Mysql】一文解读【事务】-【基本操作/四大特性/并发事务问题/事务隔离级别】

前言 大家好吖&#xff0c;欢迎来到 YY 滴MySQL系列 &#xff0c;热烈欢迎&#xff01; 本章主要内容面向接触过C Linux的老铁 主要内容含&#xff1a; 欢迎订阅 YY滴C专栏&#xff01;更多干货持续更新&#xff01;以下是传送门&#xff01; YY的《C》专栏YY的《C11》专栏YY的…