java(面向对象基础)

news2024/11/19 5:45:52

面向对象的三大特征:封装、继承、多态

一、封装

用 类设计对象处理某一个事物的数据时,应该把要处理的数据,以及处理这些数据的方法,设计到一个对象中去。

封装规范:合理隐藏,合理暴露(先将成员变量全部隐藏起来,然后设计合理的方法来暴露给外界访问)

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

隐藏成员:使用private进行修饰。

二、实体JavaBean

实体类

含义:一种特殊形式的类。

所具备的条件:1)这个类中的成员变量都要私有,并且要对外提供get,set的办法。

注:在diea中可以自动生成getters and setters的方法。

2)类中必须要有一个公共的无参的构造器

以下就是一个实体类的例子。

public class Student {
    //条件一:所有成员变量都要私有,并且要对外提供getters and setters的方法。
    private String name;
    private double score;

    //条件二:必须为类提供一个公开的无参数构造器。


    public Student() {
    }//可以通过点击右键,然后点击generate自动生成无参构造器。

    /*public Student(String name, double score) {
        this.name = name;
        this.score = score;
    }//同样可以通过点击generate自动生成有参构造器。*/

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public double getScore() {
        return score;
    }

    public void setScore(double score) {
        this.score = score;
    }
}

特点:仅仅只是一个用来保存数据的java类,可以用它创建对象,保存某个事物的数据。

实体类的应用场景:

实体类只负责数据存取,而对数据的处理交给其他类来完成,以实现数据和数据业务处理相分离。

二、常用API
a)包:是用来分门别类的管理各种不同程序的,类似于文件夹,建包有利于程序的管理和维护。

b)三大作用:

1)区分相同名字的类

2)当类很多时,可以很好地管理类[看Java API文档]

3)控制访问范围

建包不需要我们自己建立,idea会自动生成。

c)包的命名

1)命名规则

只能包含数字、字母、下划线、小圆点,但不能用数字开头,不能是关键字或保留字(goto,const)。

注:demo.12a//这个形式的命名也不行,因为在12a这个部分用了数字开头。

2)命名规范

一般是小写字母+小圆点

一般形式为com.公司名.项目名.业务模板块

例如:com.sina.crm.user//用户板块。

d)常用的包

e)包的引入

引入一个包的主要目的是要使用该包下的类。

建议:我们需要哪使用到哪个类,就导入哪个类型,不建议使用*的方式导入。

//第一种引用方式
import java.util.Scanner;//表示只会引入java.util包下的Scanner
//第二种引用方式
import java.util.*;//表示将java.util 包下的所有类都引入(导入)

f)包的注意事项和使用细节

1.package的作用是声明当前类所在的包,需要放在class或文件)(的最上面,一个类中最多只有一句package.

2.import指令位置放在package的下面,在类定义前面,可以有多句且没有顺序要求。

f)系统提供的array.sort函数

1)第一种形式 Array.sort(int[] arr)//以int类型的数组举例


import java.util.Arrays;

public class bag
{
    public static void main(String[] args) {
        int[] s={1,3,2,6,5};
        //系统提供了Arrays 完成 数组排序。
        Arrays.sort(s);
        for(int i=0;i<5;i++){
            System.out.println(s[i]);
        }
        //输出结果是1 2 3 5 6
    }
}

2) 第二种形式

Arrays.sort(int[] a, int fromIndex, int toIndex)//以类型为int的数组举例。

这种形式是对数组部分排序,也就是对数组a的下标从fromIndex到toIndex-1的元素排序,注意:下标为toIndex的元素不参与排序

import java.util.Arrays;

public class bag
{
    public static void main(String[] args) {
        int[] s={1,3,2,6,5};
        //系统提供了Arrays 完成 数组排序。
        Arrays.sort(s,0,5);
        for(int i=0;i<5;i++){
            System.out.println(s[i]);
        }
        //输出结果是1 2 3 5 6
    }
}

3)第三种形式

三、访问修饰符

java提供四种访问控制修饰符号控制方法和属性(成员变量)的访问权限(范围):

1.公开级别:用public修饰,对外公开。

2.受保护级别:用protected修饰,对子类和同一个包中的类公开。

3.默认级别:没有修饰符号,向同一个包的类公开

4.私有级别:用priavte 修饰,只有类本身可以访问。

使用访问修饰符的注意事项:

1)修饰符可以用来修饰类中的属性,成员方法以及类。

2)只有默认的和public才能修饰类。

3)成员方法的访问规则和属性完全一样。

以下是定义的Account类。 

package object;

public class Account {
    private String name;
    private double money;
    private String password;

    public String getName()
    {
        return name;
    }

    public void setName(String name){
        if(name.length()==2||name.length()==3||name.length()==4){
            this.name=name;
        }else System.out.println("用户名错误");
    }

    public double getMoney() {
        return money;
    }

    public void setMoney(double money) {
        if(money>20){
            this.money = money;
        }else System.out.println("金额错误");
    }

    public String getPassword() {
        return password;
    }

    public void setPassword(String password) {
        if(password.length()==6){
            this.password = password;
        }else System.out.println("账户密码错误");
    }
}

以下是定义的AccountTest类

package object;

public class AccountTest {
    public static void main(String[] args) {
        Account n1=new Account();
        n1.setName("小王");
        n1.setMoney(21);
        n1.setPassword("103839");
    }
}

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

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

相关文章

力扣hot100 编辑距离 多维DP

Problem: 72. 编辑距离 文章目录 思路Code 思路 &#x1f468;‍&#x1f3eb; 参考地址 Code ⏰ 时间复杂度: O ( n m ) O(nm) O(nm) &#x1f30e; 空间复杂度: O ( n m ) O(nm) O(nm) class Solution {public int minDistance(String s1, String s2){int n s1.lengt…

MongoDB基础认识

MongoDB数据库介绍 名称源自“humongous”&#xff08;意为“巨大无比”&#xff09;。MongoDB 是由C语言编写的&#xff0c;是一个基于分布式文件存储的开源数据库系统。在高负载的情况下&#xff0c;添加更多的节点&#xff0c;可以保证服务器性能。MongoDB 旨在为WEB应用提…

备战蓝桥杯---搜索(DFS基础1)

何为深搜&#xff1f; 即不撞南墙不罢休。 话不多说&#xff0c;直接看题&#xff1a; 我们可以把这看成深搜的模板题&#xff0c;下面是AC代码&#xff1a; #include<bits/stdc.h> using namespace std; int a[15];//存值并输出 int vis[15]; int n18; void dfs(int …

Nicn的刷题日常之喝汽水问题

目录 1.题目描述 2.解题思路 3.解题 4.思路2 解题 1.题目描述 喝汽水&#xff0c;1瓶汽水1元&#xff0c;2个空瓶可以换一瓶汽水&#xff0c;给20元&#xff0c;可以喝多少汽水&#xff08;编程实现&#xff09;。 2.解题思路 1. 20元首先可以喝20瓶&#xff0c;此时手…

书生浦语2-对话-20B大模型部署实践

简介 书生浦语2.0是一个大语言模型&#xff0c;是商汤科技与上海 AI 实验室联合香港中文大学和复旦大学发布的新一代大语言模型。‘ 具体特性 有效支持20万字超长上下文&#xff1a;模型在 20 万字长输入中几乎完美地实现长文“大海捞针”&#xff0c;而且在 LongBench 和 L…

Python程序设计 函数基础

简单函数 函数&#xff1a;就是封装了一段可被重复调用执行的代码块。通过此代码块可以实现大量代码的重复使用。 函数的使用包含两个步骤&#xff1a; 定义函数 —— 封装 独立的功能 调用函数 —— 享受 封装 的成果 函数的作用&#xff0c;在开发程序时&#xff0c;使用…

2024年美赛F题超详细思路

Problem F: Reducing Illegal Wildlife Trade 美赛F题以非法野生动物贸易为背景进行命题&#xff0c;需要我们选择客户进行一系列的问题。本文正式解题前需要收集客户的数据以及数据预处理。对于客户的选择&#xff0c;这里考虑的点在于该客户需要能够对非法贸易交易产生影响。…

el-upload子组件上传多张图片(上传为files或base64url)

场景&#xff1a; 在表单页&#xff0c;有图片需要上传&#xff0c;表单的操作行按钮中有上传按钮&#xff0c;点击上传按钮。 弹出el-dialog进行图片的上传&#xff0c;可以上传多张图片。 由于多个表单页都有上传多张图片的操作&#xff0c;因此将上传多图的el-upload定义…

6、基于机器学习的预测

应用机器学习的任何预测任务与这四个策略。 文章目录 1、简介1.1定义预测任务1.2准备预测数据1.3多步预测策略1.3.1多输出模型1.3.2直接策略1.3.3递归策略1.3.4DirRec 策略2、流感趋势示例2.1多输出模型2.2直接策略1、简介 在第二课和第三课中,我们将预测视为一个简单的回归问…

Python开源项目周排行 2024年第3周

ython 趋势周报&#xff0c;按周浏览往期 GitHub,Gitee 等最热门的Python开源项目&#xff0c;入选的项目主要参考GitHub Trending,部分参考了Gitee和其他。排名不分先后&#xff0c;都是当周相对热门的项目。 入选公式&#xff1d;70%GitHub Trending20%Gitee10%其他 关注微…

K8S-NFS-StorageClass

工作流程 K8s中部署NFS-StorageClass K8s的StorageClass提供了为集群动态创建PV的能力。 1.部署NFS服务 2.选择NFS的Provinisoner驱动 K8S中没有内置的NFS的制备器&#xff0c;而定义StorageClass的时候需要指定制备器&#xff08;Pervisioner&#xff09;,所以需要&#xf…

Pycharm Community 配置调试Behave

前提&#xff1a;python小白&#xff0c;临时搞python项目&#xff0c;公司限制使用Pycharm版本&#xff0c;故只能使用社区版&#xff0c;然而官方有明确说明&#xff1a;只有Professional版支持Behave。故研究了半天才整清楚社区版调试Behave的设置 没有进行下面的步骤之前&…

C++面试宝典第26题:螺旋矩阵

题目 给你一个正整数n,生成一个包含1到n的平方的所有元素,且元素按顺时针顺序螺旋排列成n x n的正方形矩阵。 示例: 输入:n = 3 输出:[[1,2,3],[8,9,4],[7,6,5]] 解析 螺旋矩阵是指按照顺时针(或逆时针)螺旋顺序排列元素的二维矩阵。比如:给定一个如下的3x3矩阵,按顺…

PSoc62™开发板之WDT应用

看门狗 看门狗定时器(WDT)是一种硬件定时器&#xff0c;在出现意外固件时自动复位设备执行路径。如果启用了WDT&#xff0c;则必须在固件中定期进行服务&#xff0c;以避免复位。否则&#xff0c;计时器失效并产生一个设备复位。此外&#xff0c;WDT可以用作中断源或在低功耗唤…

正点原子--STM32定时器学习笔记(1)(更新中....)

F1系列基本定时器&#xff08;TIM6 / TIM7&#xff09; 我们的目标是通过TIM6基本定时器定时500ms&#xff0c;让LED0每隔500ms闪一下&#xff01; 思路&#xff1a;使用定时器6&#xff0c;实现500ms产生一次定时器更新中断&#xff0c;在中断里执行“翻转LED0”。 定时器什…

2024021期传足14场胜负前瞻

2024021期赛事由亚洲杯2场、英超5场&#xff0c;德甲6场、非洲杯1场组成。售止时间为2月3日&#xff08;周六&#xff09;19点00分&#xff0c;敬请留意&#xff1a; 本期1.5以下赔率3场&#xff0c;1.5-2.0赔率3场&#xff0c;其他场次基本皆是平半盘、平盘。本期14场整体难度…

第三百零三回

文章目录 1. 概念介绍2. 实现方法2.1 文字信息2.2 红色边框 3. 示例代码4. 内容总结 我们在上一章回中介绍了"如何实现密码输入框"相关的内容&#xff0c;本章回中将介绍如何在在输入框中提示错误.闲话休提&#xff0c;让我们一起Talk Flutter吧。 1. 概念介绍 我们…

LabVIEW CVT离合器性能测试

介绍了CVT&#xff08;连续变速器&#xff09;离合器的性能测试的一个应用。完成了一个基于LabVIEW软件平台开发的CVT离合器检测与控制系统&#xff0c;通过高效、准确的测试方法&#xff0c;确保离合器性能达到最优。 系统采用先进的硬件配合LabVIEW软件&#xff0c;实现了对…

python-自动化篇-运维-实现读取日志文件最后一行的时间

文章目录 1. 使用Python打开日志文件2.python读取文件最后一行两种方式3.读取当前时间&#xff0c;进行两者相减&#xff0c;超时报警4.将内容推送到企业微信5. 关闭日志文件整体代码 1. 使用Python打开日志文件 在开始实时读取日志文件之前&#xff0c;我们首先需要打开一个日…

深入了解键盘:分类、工作原理与操作指南

键盘 键盘是计算机使用的主要输入设备之一&#xff0c;键盘主要由创建字母、数字和符号并执行附加功能的按钮组成&#xff0c;通常用于向计算机或其他数字设备输入文本、命令和各种控制信号。 键盘是计算机中最重要的字符输入设备&#xff0c;其基本组成元件是按键开关&#…