Java的构造方法

面向对象:属性和方法,当对象被创建的时候,构造方法用来初始化该对象,给对象的成员变量赋初始值

构造方法的格式: 修饰符 构造方法名(参数列表){方法体}

写法: 1.方法名与他所在类的名字相同

2.没有返回值,所以不需要指定返回类型,也不需要void

注:无论你是否定义了构造方法, 所有类都有构造方法,因为Java自动为你提供了一个无参构造方法,一旦你自己定义了构造方法,Java自动提供的默认的无参构造方法就会失效。无参必须,有参建议。

如果你不提供构造方法,系统会默认给你一个无参构造方法

如果你提供了构造方法,系统不会给你提供一个无参构造方法

构造方法时可以重载的, 既可以定义参数,也可以不定义参数

案例:学生类

public class Student {

private String name;

private int age;

// 无参构造方法

public Student(){

// System.out.println("无参构造方法被调用");

}

//有参的构造方法,初始化学生类的时候

public Student(String name,int age){

this.age = age;

this.name = name;

System.out.println("有参构造方法被调用" + this.name);

}

}

JavaBean

JavaBean (爪哇 的 咖啡豆) 是一种Java的标准规范.

符合JavaBean的类要求类:1、必须是具体的和公共的 2、并且具有无参构造方法 3、提供用来操作成员变量的set和get方法, 和数据库中表字段对应的实体类就是一个典型JavaBean

案例:学生类JavaBean

package com.company;

public class StudentJavaBean {

// 成员变量

private String name;

private int age;

private int salary;

// 无参构造方法(必须)

public StudentJavaBean(){

}

// 有参构造方法(建议)

public StudentJavaBean(String name, int age){

this.name = name;

this.age = age;

this.salary = salary;

}

// 成员方法

// get***()

public String getName(){

return name;

}

// set***()

public void setName(String name){

this.name = name;}

public int getAge(){

return age;

}

public void setAge(int age){

this.age = age;

}

public int getSalary(){

return salary;

}

public void setSalary(int salary){

this.salary = salary;

}

}

创建TestJavaBean

package com.company;

public class TestJavaBean {

// JavaBean 爪哇 的 咖啡豆 是一种Java的标准规范.

// 符合JavaBean的类要求类1、必须是具体的和公共的/2、并且具有无参构造方法

// 3、提供用来操作成员变量的set和get方法, 和数据库中表字段对应的实体类就是一个典型JavaBean

// 格式

// 成员变量

// 无参构造方法[必须]

// 有参构造方法[建议]

// 成员方法

// get***()

// set***()

public static void main(String[] args) {

// 无参的构造方法的调用

StudentJavaBean s = new StudentJavaBean();

s.setName("李白");

s.setAge(9999);

s.setSalary(6666);

System.out.println(s.getName()+"---"+s.getAge()+"---"+s.getSalary());

// 有参的构造方法的调用

StudentJavaBean s2 = new StudentJavaBean("杜甫", 8888);

System.out.println(s2.getName()+"---"+s2.getAge());

}

}

API

API(Application Programming Interface),应用程序编程接口。Java API是一本程序员的字典 ,是JDK中提供给 我们使用的类的说明文档。这些类将底层的代码实现封装了起来,我们不需要关心这些类是如何实现的,只需要学习这些类如何使用即可。所以我们可以通过查询API的方式,来学习Java提供的类,并得知如何使用它们。

API使用步骤:

1.打开帮助文档。

2.点击显示,找到索引,看到输入框。

3.你要找谁?在输入框里输入,然后回车。

4.看包。java.lang下的类不需要导包,其他需要。

5.看类的解释和说明。

6.学习构造方法。

7.使用成员方法。

Scanner类

Scanner类:一个可以解析基本类型和字符串的简单文本扫描器。

案例:读取通过键盘录入的数据

//创建对象 格式:数据类型 变量名 = new 数据类型(参数列表);

Scanner scanner = new Scanner(System.in);

//调用方法 格式:变量名.方法名();

int i = scanner.nextInt();

Scanner使用步骤

1.查看类

java.util.Scanner :该类需要import导入后使用。

2.查看构造方法

public Scanner(InputStream source) : 构造一个新的 Scanner ,它生成的值是从指定的输入流扫描的。

3.查看成员方法

public int nextInt() :将输入信息的下一个标记扫描为一个 int 值。

使用Scanner类,完成接收键盘录入数据的操作,代码如下:

//1. 导包

import java.util.Scanner;

public class Demo01_Scanner {

public static void main(String[] args) {

//2. 创建键盘录入数据的对象

Scanner sc = new Scanner(System.in);

//3. 接收数据

System.out.println("请录入一个整数:");

int i = sc.nextInt();

//4. 输出数据

System.out.println("i:"+i);

}

}

案例:键盘录入两个数据并求和

package com.company;

import java.util.Scanner;

public class APIDemo02 {

public static void main(String[] args) {

//输入两位数求和

Scanner scanner = new Scanner(System.in);

System.out.println("请输入两个数(求和):");

int num1 = scanner.nextInt();

int num2 = scanner.nextInt();

int sum = num1 + num2;

System.out.println(num1 + "+" + num2 + "的和为" + sum);

}

}

案例:键盘录入三个数据并获取最大值

package com.company;

import java.util.Scanner;

public class APIDemo1 {

public static void main(String[] args) {

// 1. Scanner类(System.in是指通过键盘录入数据)

// 除了java.lang包下的类不需要导入,其他必须导入才能使用

//导包格式: import 包名,类名;

//调用方法 变量名.方法名() + altEnter

// 2. Random类

// 3. ArrayList类

//三个数求最大值

Scanner scanner = new Scanner(System.in);

System.out.println("请输入三个数(求最大值):");

int x = scanner.nextInt();

int y = scanner.nextInt();

int z = scanner.nextInt();

int max;

if(x >= y && x >= z){

max = x;

}else if (y >= x){

max = y;

}else{

max = z;

}

System.out.println("最大的数为:" + max);

}

}

匿名对象

匿名对象:没有变量名的对象。创建对象时,只有创建对象的语句,却没有把对象地址值赋值给某个变量。虽然是创建对象的简化写法,但是应用场景非常有限。

格式:

new 类名(参数列表);

例: new Scanner(System.in);

应用场景:

1.创建匿名对象直接调用方法,没有变量名。

new Scanner(System.in).nextInt();

2.一旦调用两次方法,就是创建了两个对象,造成浪费,请看如下代码。

new Scanner(System.in).nextInt();

new Scanner(System.in).nextInt();

一个匿名对象,只能使用一次。

3.匿名对象可以作为方法的参数和返回值作为参数

public static void main(String[] args) {

// 普通方式

Scanner sc = new Scanner(System.in);

input(sc);

//匿名对象作为方法接收的参数

input(new Scanner(System.in));

}

public static void input(Scanner sc){

System.out.println(sc);

}

}

//作为返回值

// 普通方式

Scanner sc = getScanner();

}

public static Scanner getScanner(){

//普通方式

//Scanner sc = new Scanner(System.in);

//return sc;

//匿名对象作为方法返回值

return new Scanner(System.in);

}

}

Random类

Random类:

1.查看类

java.util.Random :该类需要 import导入使后使用。

2.查看构造方法

public Random() :创建一个新的随机数生成器。

3.查看成员方法

public int nextInt(int n) :返回一个伪随机数,范围在 0 (包括)和 指定值 n (不包括)之间的int 值。

案例:使用Random类,生成3个10以内的随机整数

//1. 导包

import java.util.Random;

public class Demo01_Random {

public static void main(String[] args) {

//2. 创建键盘录入数据的对象

Random r = new Random();

for(int i = 0; i < 3; i++){

//3. 随机生成一个数据

int number = r.nextInt(10);

//4. 输出数据

System.out.println("number:"+ number);

}

}

}

案例:猜数字,每次猜会提示数字大还是小

public class Test02Random {

public static void main(String[] args) {

Random random = new Random();

int number = random.nextInt(100)+1;

while (true){

Scanner scanner = new Scanner(System.in);

System.out.println("请输入您猜的数字:");

int i = scanner.nextInt();

if( i > number){

System.out.println("您猜的的数字大了");

}else if(i < number){

System.out.println("您猜的的数字小了");

}else{

System.out.println("恭喜您猜对了!!!");

break;

}

}

}

}

ArrayList类

ArrayList类:对象数组。java.util.ArrayList 是大小可变的数组的实现,存储在内的数据称为元素。此类提供一些方法来操作内部存储的元素。 ArrayList 中可不断添加元素,其大小也自动增长。

ArrayList使用步骤

1.查看类

java.util.ArrayList :该类需要 import导入使后使用。

,表示一种指定的数据类型,叫做泛型。 E ,取自Element(元素)的首字母。在出现 E 的地方,我们使

用一种引用数据类型将其替换即可,表示我们将存储哪种引用类型的元素。

代码如下:ArrayList,ArrayList

2.查看构造方法

public ArrayList() :构造一个内容为空的集合。

3.基本格式:ArrayList list = new ArrayList();

4.在JDK 7后,右侧泛型的尖括号之内可以留空,但是<>仍然要写。简化格式:ArrayList list = new ArrayList<>();

5.查看成员方法

public boolean add(E e) : 将指定的元素添加到此集合的尾部。

参数 E e ,在构造ArrayList对象时, 指定了什么数据类型,那么 add(E e) 方法中,只能添加什么数据

类型的对象。

案例:使用学生数组,存储三个学生对象

public class Student {

private String name;

private int age;

public Student() {

}

public Student(String name, int age) {

this.name = name;

this.age = age;

}

public String getName() {

return name;

}

publicvoid setName(String name) {

this.name = name;

}

publicint getAge() {

return age;

}

publicvoid setAge(int age) {

this.age = age;

}

}

public class Test01StudentArray { public static void main(String[] args) { //创建学生数组

Student[] students = new Student[3];

//创建学生对象

Student s1 = new Student("曹操",40);

Student s2 = new Student("刘备",35);

Student s3 = new Student("孙权",30);

//把学生对象作为元素赋值给学生数组

students[0] = s1;

students[1] = s2;

students[2] = s3;

//遍历学生数组

for(int x=0; x

Student s = students[x];

System.out.println(s.getName()+"‐‐‐"+s.getAge());

}

}

}

案例:使用ArrayList类,添加三个字符串元素到集合中

public class Test02StudentArray {

public static void main(String[] args) {

/**

* new ArrayList(); // 表示一种指定的数据类型,叫做泛型

* new ArrayList(); // 表示一种指定的数据类型,叫做泛型

* new ArrayList(); // 表示一种指定的数据类型,叫做泛型

*/

ArrayList list = new ArrayList<>();

// 指定元素添加到集合的尾部

// list.add("张三");

// 创建刘、关、张、赵 四位同学的信息

StudentJavaBean s1 = new StudentJavaBean("刘玄德", 50);

StudentJavaBean s2 = new StudentJavaBean("关云长", 45);

StudentJavaBean s3 = new StudentJavaBean("张翼德", 42);

StudentJavaBean s4 = new StudentJavaBean("赵子龙", 41);

// 进行添加操作

list.add(s1);

list.add(s2);

list.add(s3);

list.add(s4);

// 打印list

System.out.println(list);

System.out.println(list.size());

// 遍历ArrayLisy的第一种方式fori 循环

for (int i = 0; i

// StudentJavaBean s = list.get(i);

// System.out.println(s.getName());

System.out.println(list.get(i).getName());

}

}

}

元素的增删改查和遍历

public boolean add(E e) :将指定的元素添加到此集合的尾部。

public E remove(int index) :移除此集合中指定位置上的元素。返回被删除的元素。

public E get(int index) :返回此集合中指定位置上的元素。返回获取的元素。

public int size() :返回此集合中的元素数。遍历集合时,可以控制索引范围,防止越界。

public class Demo01ArrayListMethod {

public static void main(String[] args) {

//创建集合对象

ArrayList list = new ArrayList();

//添加元素

list.add("hello");

list.add("world");

list.add("java");

//public E get(int index):返回指定索引处的元素

System.out.println("get:"+list.get(0));

System.out.println("get:"+list.get(1));

System.out.println("get:"+list.get(2));

//public int size():返回集合中的元素的个数

System.out.println("size:"+list.size());

//public E remove(int index):删除指定索引处的元素,返回被删除的元素

System.out.println("remove:"+list.remove(0));

//遍历输出

for(int i = 0; i < list.size(); i++){

System.out.println(list.get(i));

}

}

}

案例:生成6个1~33之间的随机整数,添加到集合,并遍历

public class Test01ArrayList {

public static void main(String[] args) {

// 创建Random 对象

Random random = new Random();

// 创建ArrayList 对象

ArrayList list = new ArrayList<>();

// 添加随机数到集合

for (int i = 0; i < 6; i++) {

int r = random.nextInt(33) + 1;

list.add(r);

}

// 遍历集合输出

for (int i = 0; i < list.size(); i++) {

System.out.println(list.get(i));

}

}

}

java arraylist 构造_Java基础五:构造方法、ArrayList相关推荐

  1. java类构造_Java中类的构造方法

    constructor:构造函数. 在创建对象的时候,对象成员可以由构造函数方法进行初始化. new对象时,都是用构造方法进行实例化的: 例如:Test test = new Test("a ...

  2. 【JAVA SE】第十五章 ArrayList、LinkedList、HashMap和HashSet

    第十五章 ArrayList.LinkedList.HashSet和HashMap 文章目录 第十五章 ArrayList.LinkedList.HashSet和HashMap 一.ArrayList ...

  3. java list 区别_Java中List和ArrayList的区别

    List是一个接口,而ListArray是一个类. ListArray继承并实现了List. 所以List不能被构造,但可以向上面那样为List创建一个引用,而ListArray就可以被构造. Lis ...

  4. java代码讲解_Java基础系列-代码块详解

    注:本文出自博主 Chloneda:个人博客 | 博客园 | Github | Gitee | 知乎 前言 Java基础系列,尽量采用通俗易懂.循序渐进的方式,让大家真正理解Java基础知识! 代码块 ...

  5. java super用法_Java基础面试题汇总

    blog.csdn.net/ThinkWon/article/details/104390612 Java概述 何为编程 编程就是让计算机为解决某个问题而使用某种程序设计语言编写程序代码,并最终得到结 ...

  6. java arraylist范围_Java常见集合之ArrayList深入分析

    1 /* 2 继承自AbstractList,实现了List.RandomAccess.Cloneable.Serializable接口3 1)RandomAccess接口:用来快速随机存取,在实现了 ...

  7. Java源码详解五:ArrayList源码分析--openjdk java 11源码

    文章目录 注释 类的继承与实现 构造函数 add操作 扩容函数 remove函数 subList函数 总结 本系列是Java详解,专栏地址:Java源码分析 ArrayList 官方文档:ArrayL ...

  8. java 5 多线程_Java基础系列五、多线程

    1.什么是进程?什么是线程? 进程概念:在计算机中运行的软件,是操作系统中最基础的组成部分 .进程是容器,里面装的都是线程. 线程概念:就是运行在进程中的一段代码,是进程中最小组织单元. 注意: 1. ...

  9. java构造方法基础_Java 基础:构造方法

    目录: 一. 概述 二. 构造方法的重载 三. 类的初始化过程 四.this 关键字 五.子父类中的构造方法 六. super 关键字 七. static 关键字 八. final 关键字 一. 概述 ...

最新文章

  1. 观念什么意思_俗语“女怕午时生,男怕子夜临”是啥意思?古人的忌讳有道理吗?...
  2. Python if控制流语句
  3. pyqt5能否用于鸿蒙系统,PyQt显示来自opencv的视频流
  4. python数据分析工资_python3对拉勾数据进行可视化分析的方法详解
  5. Android架构分析之Android消息处理机制(一)
  6. Windows Service Wrapper:将程序注册为windows系统服务工具
  7. iOS 11.4.1 正式版越狱
  8. sql练习(针对Mysql)
  9. 字符串替换:用参数字符数组成员替换字符串中的占位符(面试题)
  10. 以史为鉴 | 为什么要将「知识图谱」追溯到1956年?
  11. nltk和python的关系_NLTK学习笔记(一):语言处理和Python
  12. 现在想转行学习前端,该怎么学才能最快入门
  13. python 树状图代码_Python 无限级分类树状结构生成算法 「实用代码」
  14. 《CMOS集成电路后端设计与实战》——第2章 集成电路后端设计方法
  15. 计算机二级实践网上教程答案,全国计算机等级二级教程课后习题+答案
  16. 关于概要设计文档的写作
  17. 小米手机hbuilder开发者模式
  18. oracle11g闪回默认路径,rman 备份默认路径小结
  19. Docusaurus 搭建个人博客(支持离线搜索)
  20. 微信公众号分享网页注意点

热门文章

  1. 几种常用编程语言的编程思想和方法 转
  2. PLATFORM软件有限公司
  3. uni-app 页面数据无法渲染原因总结
  4. Typescript,Vue you enjoy it ?
  5. CeSharp支持MP4
  6. Yarn 组件的指挥部 – 调度器Scheduler
  7. 一.jquery.datatables.js表格显示
  8. centos7下安装docker(14安装docker machine​)
  9. Python字典基础
  10. Array,Vector,List,Deque的区别与联系【转+改】