Java基础知识学习04-自定义类、ArrayList集合

类与对象

类是一个模子,确定对象将会拥有的特征(属性)和行为(方法)。

类的特征:类是对象的类型

                 具有相同属性和方法的一组对象的集合

类的组成:属性和方法

定义一个类:public class  类名{

                         //定义属性部分

                          属性1的类型  属性1;

                          属性2的类型  属性2;      // 属性   即表示对象有什么

                         属性n的类型   属性n;

                         //定义方法部分

                         方法1;

                         方法2;                             //方法:即表示对象干什么

                         方法n;

                   }

 

自定义类

   创建java文件,与类名相同

     public class 类名{

      数据类型  属性名称1

      数据类型  属性名称2

          …

      }

     例如:创建一个Phone类   

      public class Phone {

               String brand;// 品牌型号

              String color;// 颜色

              double size; // 尺寸大小

          }

类的使用格式

  1、导包:我们将所有的类放到同一个文件夹下,可以避免导包

  2、创建对象:数据类型  变量名 = new 数据类型();

  3、访问属性:变量名.属性

      public class Test {

          public static void main(String[] args) {

                Phone p = new Phone(); //创建对象

                p.brand = "苹果6s";    //通过对象.属性  来访问属性,并赋值

                p.color = "白色";

                p.size = 5.5;

               System.out.println("手机品牌为" + p.brand);

               System.out.println("手机颜色为" + p.color);

               System.out.println("手机尺寸大小为" + p.size);

             }

       }

内存图解(由此可得  类是引用数据类型)

ArrayList集合 

数组可以保存多个元素,但在某些情况下无法确定到底要保存多少个元素,此时数组将不再适用,因为数组的长度不可变

JDK中提供了一系列特殊的类,这些类可以存储任意类型的元素,并且长度可变,统称为集合。

   集合的创建

   1、导包:import java.util.ArrayList;

     2、创建对象:与其他普通的引用数据类型创建方式完全相同,但是要指定容器中存储的数据类型:

          ArrayList<要存储元素的数据类型> 变量名 = new ArrayList<要存储元素的数据类型>();

          集合中存储的元素,只能为<>括号中指定的数据类型元素;

          “<要存储元素的数据类型>”中的数据类型必须是引用数据类型,不能是基本数据类型;

   8种基本数据类型对应的引用数据类型

基本数据类型

对应的引用数据类型表示形式

byte

Byte

short

Short

Int

Integer

long

Long

float

Float

double

Double

char

Character

boolean

Boolean

集合中常用的方法

    add();   添加数据

    get();    获取数据

    size();   返回集合的长度

   remove(int index); 删除指定位置的数据

   add(int index,要添加的数据); 在指定位置添加数据

   clear();  清空集合中的数据

   set(int index,要修改的数据);  修改指定位置的数据

    例如:

             import java.util.ArrayList;
             public class JiHe
            {
                 public static void main(String[] args)
                 {
                        ArrayList<String> list=new ArrayList<String>();
                        //对象.方法() 对象.add(); 添加数据 集合新增
                        list.add("张三");
                        list.add("李四");
                        list.add("王五");
                        //往集合中指定位置添加数据 对象.add(int index,新增数据);
                        list.add(1,"小红");
                       //删除集合中指定位置的元素 对象.remove(int index);
                       //list.remove(2);
                       //清空集合中的数据 对象.clear();
                       //list.clear();
                       //修改集合中指定位置的数据 对象.set(int index,修改后的值);
                       list.set(2,"小明");
                      String a=list.get(0); //对象.get(); 取出数据
                      String b=list.get(1);
                      String c=list.get(2);
                      //获取集合中的数据,通过对象.get(int index)
                      for(int i=0;i<list.size();i++){ //对象.size() 数组的长度
                      System.out.println(list.get(i));
                           }
                   }
        }

举例:定义一个员工类Employee,包含三个属性姓名、工号、工资,创建三个员工对象存入ArrayList集合中,并遍历输出。

代码如下:

class Employee
{
String name;
int eno;
double salary;
}

 

import java.util.ArrayList;
public class EmployeeTest
{
public static void main(String[] args)
{
/*1、创建对象
2、通过 对象.属性 添加数据
3、创建集合对象
ArrayList<要存储元素的数据类型> 变量名 = new ArrayList<要存储元素的数据类型>();
4、通过 对象.方法() 操作数据
5、对象.add(); 添加数据
对象.get(); 获取数据
*/
Employee em1 = new Employee();
Employee em2 = new Employee();
Employee em3 = new Employee();

em1.name="张三";
em1.eno=100;
em1.salary=2340;

em2.name="李四";
em2.eno=101;
em2.salary=2640;

em3.name="王五";
em3.eno=102;
em3.salary=3340;

ArrayList<Employee> emp = new ArrayList<Employee>();
emp.add(em1);
emp.add(em2);
emp.add(em3);
for(int i=0;i<emp.size();i++){
System.out.println(emp.get(i).name+'\t'+emp.get(i).eno+'\t'+emp.get(i).salary);
}
}
}

 

转载于:https://www.cnblogs.com/Java-125/p/8629176.html

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

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

相关文章

监视和管理GlassFish 3的多种方法

GlassFish 3支持多种监视和管理方法。 在本文中&#xff0c;我将简要介绍GlassFish提供的管理&#xff0c;监视和管理方法。 GlassFish管理控制台 GlassFish基于Web的管理控制台GUI可能是GlassFish管理最著名的界面。 默认情况下&#xff0c;运行GlassFish后&#xff0c;可通过…

幸运抽奖

var oPointerdocument.getElementsByTagName("img")[0];var oTurnabledocument.getElementsByTagName("img")[1];var cat15;//每个区域15度&#xff0c;一共24个区域var num0;var offOntrue;//是否正在抽奖//指针点击事件&#xff0c;开始抽奖oPointer.onc…

linux usleep 线程控制权_linux多线程同步—信号量

linux多线程编程-信号量信号量机制锁机制使用是有限制的&#xff0c;锁只有两种状态&#xff0c;即加锁和解锁&#xff0c;对于互斥的访问一个全局变量&#xff0c;这样的方式还可以对付&#xff0c;但是要是对于其他的临界资源&#xff0c;比如说多台打印机等&#xff0c;这种…

Django字段类型介绍

一&#xff0c;通过makemigrations&#xff0c;migrate来修改数据&#xff0c; 1.Django的ORM支持修改表结构&#xff0c;修改完以后&#xff0c;执行 python manage.py makemigrations python manage.py migrate 这两句&#xff0c;就会看到更新了。超过长度的数据就会丢了。…

input输入框的input事件和change事件

input输入框的onchange事件&#xff0c;要在 input 失去焦点的时候才会触发&#xff1b; 在输入框内容变化的时候不会触发change&#xff0c;当鼠标在其他地方点一下才会触发&#xff1b; onchange 事件也可用于单选框与复选框改变后触发的事件。 demo如下&#xff1a; <sc…

单例设计模式–内省和最佳实践

定义&#xff1a; Singleton是“ 四人帮”设计模式的一部分&#xff0c;它属于创新设计模式。 在本文中&#xff0c;我们将更深入地研究Singleton模式的用法。 就建模而言&#xff0c;它是最简单的设计模式之一&#xff0c;但另一方面&#xff0c;就使用的复杂性而言&#xff0…

修改用户名_Word办公技巧:如何更改文档修订者的用户名?

在一份文档需要多人参与修订的时候,每个审阅者将用户名改为自己的名字就可以方便地看出具体哪个参与者做了哪些改动。下面我们来学习一下更改修订者用户名的办法。 应用场景 下图文档中默认修订者用户名为"AutoBVT",接下来我们想将其改为"李小白"。 操作…

Java伪随机数生成器(PRNG)中的弱点

这将是Kai Michaelis&#xff0c;JrgSchwenk和我撰写的论文的总结&#xff0c;该论文在RSA Conference 2013的密码学家会议上发表 。 你可以得到我的演讲的幻灯片在这里和我们的全文在这里 。 我们对PRNG&#xff08;主要是SecureRandom&#xff09;附带的常见Java库生成的随机…

vue安装概要以及vue测试工具

一、概述 1、安装node&#xff0c;去node官网 2、新建一个项目&#xff0c;通过npm init命令初始化&#xff0c;即创建一个package.json文件 3、用命令 npm install vue -g 全局安装vue&#xff08;网上已经有详细的资料&#xff0c;在此就不复述了&#xff09; 二、vue测试…

linux安装与远程连接

1、在VMware上创建新的虚拟机&#xff0c;保证有linux版本的iso镜像文件 具体参考http://jingyan.baidu.com/article/eae0782787b4c01fec548535.html 2、进行切换用户 进行root用户的切换&#xff1a;   #su password: 进行普通用户的切换&#xff1a; #su username 3、编辑…

Spring框架:三种Spring Bean生命周期技术

当使用术语“生命周期”时&#xff0c;Spring的家伙指的是您的bean的构造和破坏&#xff0c;通常这与Spring Context的构造和破坏有关。 在某些情况下&#xff0c;Bean生命周期的管理不是一件容易的事&#xff0c;因为需要它执行自己的内部设置。 当您的bean必须与外部系统进行…

wincc客户机打开服务器文件通讯不上,wincc客户机连不上服务器

如果你计算机名称改正确了&#xff0c;检查一下安装OPC服务软件吗&#xff1f;比如SIMATIC NET。然后试一试下面方法能否解决:首先&#xff0c;设置一下PG/PC接口。方法:开始--设置--控制面板--设置PG/PC接口&#xff0c;在接口分配参数&#xff0c;选择你要的参数(根据你的情…

spring boot高性能实现二维码扫码登录(上)——单服务器版

前言 目前网页的主流登录方式是通过手机扫码二维码登录。我看了网上很多关于扫码登录博客后&#xff0c;发现基本思路大致是&#xff1a;打开网页&#xff0c;生成uuid&#xff0c;然后长连接请求后端并等待登录认证相应结果&#xff0c;而后端每个几百毫秒会循环查询数据库或r…

查看 固态硬盘位置_3米防摔+人脸/指纹解锁:西数Armorlock移动固态硬盘

要求快速而又安全的数据拷贝工具&#xff1f;指纹识别移动SSD大家应该都见过了&#xff0c;今天西数推出了一个更为特别的人脸/指纹识别加密移动SSD。G-Technology Armorlock使用AES256全盘加密固态硬盘中的数据&#xff0c;解锁方式不是常见的密码或自带指纹传感器&#xff0c…

web前端工程师全套教程免费分享

这是我自己早前听课时整理的前端全套知识点&#xff0c;适用于初学者&#xff0c;也可以适用于中级的程序员&#xff0c;你们可以下载下来。我自认为还是比较系统全面的&#xff0c;可以抵得上市场上90%的学习资料。讨厌那些随便乱写的资料还有拿出来卖钱的人&#xff01;在这里…

mybatis一对一联表查询的两种常见方式

1.一条语句执行查询&#xff08;代码如下图&#xff09; 注释&#xff1a;class表&#xff08;c别名&#xff09;&#xff0c;teacher表&#xff08;t别名&#xff09;teacher_id为class表的字段t_id为teacher表的字段&#xff0c;因为两者有主键关联的原因&#xff0c;c_id为c…

在Windows 7中设置Java开发环境

一段时间以来&#xff0c;我收到了很多愿意尝试Java语言的学生和人们的要求&#xff0c;它们提供了关于如何设置Java开发环境的简单指南&#xff0c;类似于我一年前写的那样。 Mac用户。 看到这里和这里 。 因此&#xff0c;本文主要针对Java开发新手&#xff0c;他们寻求有关使…

写给想成为前端工程师的同学们―前端工程师是做什么的?

前端工程师是做什么的&#xff1f; 前端工程师是互联网时代软件产品研发中不可缺少的一种专业研发角色。从狭义上讲&#xff0c;前端工程师使用 HTML、CSS、JavaScript 等专业技能和工具将产品UI设计稿实现成网站产品&#xff0c;涵盖用户PC端、移动端网页&#xff0c;处理视觉…

逆水寒服务器维护7.5,逆水寒7.26日维护到什么时候 逆水寒7.26日游戏改动汇总介绍...

逆水寒7.26日维护到什么时候 逆水寒7.26日游戏改动汇总介绍2018-07-26 10:08:08来源&#xff1a;游戏下载编辑&#xff1a;苦力趴评论(0)《逆水寒》官方发布微博&#xff0c;称为了保证服务器的运行稳定和服务质量&#xff0c;将于7月26日上午7:00-上午10:00进行停服维护。此次…

是否可以限制蓝牙传输距离_技术文章—关于蓝牙传输范围的常见误解

蓝牙技术在耳机、手机、手表及汽车领域的普及为人们带来了许多便利&#xff0c;却也引发了一些人们对于蓝牙的误解。目前&#xff0c;蓝牙可为多种重要的解决方案提供支持&#xff0c;其中包括家庭自动化、室内导航以及商业和工业创新等。误解一&#xff1a;蓝牙稳定传输的最远…