需求描述 实现上图需求,根据输入的三个人的信息,分别计算出这个三个客户的平均年龄和最大年龄 涉及知识点: ①构造方法 ②字符串切割 ③对象数组 代码实现 代码结构图: package cn.test.logan.day03; public class Person { String custNo; String custName; int age; String addr; // 定义构造方法:用来构造一个对象时执行的初始化逻辑 public Person(String custNo,Strin…
Java基础--String构造方法 public String(): 创建一个空表字符串对象,不包含任何内容 public String(char[]chs): 根据字符数组的内容,来创建字符串对象,现已不用 public String (byte[]bys): 根据字节数组的内容,来创建字符串对象 String s="abs": 直接赋值的方式创建字符串对象,内容为双引号内的字符串数据推荐使用 //笨方法public class StringDemo01 {   public st…
在java里面,构造方法也就是构造函数 构造函数=构造方法;构造方法是一种特殊的方法,具有以下特点.(1)构造方法的方法名必须与类名相同.(2)构造方法没有返回类型,也不能定义为void,在方法名前面不声明方法类型.(3)构造方法的主要作用是完成对象的初始化工作,它能够把定义对象时的参数传给对象的域.(4)一个类可以定义多个构造方法,如果在定义类时没有定义构造方法,则编译系统会自动插入一个无参数的默认构造器,这个构造器不执行任何代码.(5)构造方法可以重载,以参数的个数,类型,顺序. java构…
需求描述 定义一个类,描述订单信息订单id订单所属用户(用户对象)订单所包含的商品(不定数量个商品对象)订单总金额订单应付金额:    总金额500~1000,打折85折    总金额1000~1500,打折80折    总金额1500~2000,打折70折    总金额超过2000,打折65折         在此基础上,还要看用户的vip等级    用户vip等级为:一般会员,则折上折:95    用户vip等级为:中级会员,则折上折:90    用户vip等级为:高级会员,则折上折:80…
需求描述 编写一个工具类,对ArrayList实现以下功能: ① 排序 ② 求最大值 ③ 求最小值 ④ 求平均值 需求实现 实现代码 package cn.test.logan.day04; import java.util.ArrayList; /** * 编写一个工具类:对整型的Arraylist实现排序.求最大值.最小值.平均值等 * @author QIN * */ public class ListUtils { // 排序 public static void sort(ArrayL…
1.概念 Java语言中的“方法”(Method)在其他语言当中也可能被称为“函数”(Function).对于一些复杂的代码逻辑,如果希望重复使用这些代码,并且做到“随时任意使用”,那么就可以将这些代码放在一个大括号“{}”当中,并且起一个名字.使用代码的时候,直接找到名字调用即可 2.实战演练 2.1 测试传入参数与返回值方法 目录结构 代码 package cn.test.logan.day04; import java.util.ArrayList; public class Method…
1.需求描述 ①定义一个学生类,然后根据该类创建3个具体的学生对象 类中包含信息:学生姓名.学号.年龄.性别.所在地址 ②将这三个学生对象存入到数组中 ③然后将数组对象按照学生的年龄倒序排序 2.代码 目录结构: Student.java的内容 package cn.test.logan.day03; public class Student { // 定义类 String stuName; String stuNo; int Age; String Gender; String Addr; }…
什么是数组?数据是可以装一组数据的变量 1.定义数组 float[] arr1 = new float[10]; // 可以装10个float数据 int[] arr2 = new int[10]; // 可以装10个int数据 String[] arr2 = new String[10]; // 可以装10个String数据 2.数组赋值 arr1[0]=10.1 // 给float数组赋值 arr2[0]=10 // 给int数组赋值 arr3[0]="Logan" // 给Str…
1.for循环 语法: for (初始表达式;布尔表达式;步进) { 循环体: } 实例: package cn.test.logan.day02; import java.util.Scanner; public class ForDemo { public static void main(String[] args) { //内置一个数字 //int n = 100; for(int i=0;i<=100;i++) { // 输入数字 System.out.println("请输入数…
1.需求描述 在终端输入2个数字,然后根据输入的数字求和 2.实现代码 package cn.test.logan; import java.util.Scanner; public class Test02 { public static void main(String[] args) { // 首先,创建一个用于获取终端的输入的工具 Scanner sc= new Scanner(System.in); // 获取用户输入的第一个数字 String num1 = sc.nextLine()…
1.实现需求 根据已经存在的数组,使用冒泡排序将数组中的元素排序后输出. 2.代码 package cn.test.logan.day02; /** * 冒泡排序在数组上的实现 * @author QIN * */ public class ArrayDemo4 { public static void main(String[] args) { //定义数组并赋值 int[] arr = new int[5]; arr[0]=30; arr[1]=50; arr[2]=20; arr[3]=4…
线程:线程是操作系统能够进行运算调度的最小单位.它被包含在进程之中,是进程中的实际运作单位.一条线程指的是进程中一个单一顺序的控制流,一个进程中可以并发多个线程,每条线程并行执行不同的任务. 进程:进程是计算机中的程序关于某数据集合上的一次运行活动,是系统进行资源分配和调度的基本单位,是操作系统结构的基础. 进程与线程的一个简单解释(阮一峰) 传送门 Java中创建一个线程,方法一:继承Thread类 继承Thread 重写run方法 创建对象,并调用start方法运行 (如果直接调用run方法…
一).构造方法: 在之前我们提到对象的概念以及对象的实例化等,在这里简单回顾下: Man man = new Man(); 语句创建一个对象,new可以理解成创建一个对象的关键字,通过new关键字为对象分配内存,初始化实例变量,并调用构造方法. Man()形式上和调用方法相同,而这个Man()就是一个特殊的方法叫做构造方法: 构造方法在代码中并没有看到这个方法的定义原因是在没有定义构造方法的时候,JAVA会隐式的创建一个无参的默认构造方法 构造方法有以下几个特征:1.具有和类相同的名称:2.不含…
Date类 Date对象构造方法 Date对象常用方法 import java.util.*; public class test { public static void main(String[] args){ //无参构造Date:得到的现在的日期 Date date1=new Date(); System.out.println(date1); //Fri Dec 20 19:15:48 CST 2019 //有参构造Date:得到的是1970年开始经过num秒的日期 long num=…
1. 构造方法 我们对封装已经有了基本的了解,接下来我们来看一个新的问题,依然以Person为例,由于Person中的属性都被private了,外界无法直接访问属性,必须对外提供相应的set和get方法.当创建人对象的时候,人对象一创建就要明确其姓名和年龄,那该怎么做呢? 1.1 构造方法介绍 在开发中经常需要在创建对象的同时明确对象的属性值,比如员工入职公司就要明确他的姓名.年龄等属性信息. 那么,创建对象就要明确属性值,那怎么解决呢?也就是在创建对象的时候就要做的事情,当使用new关键字创建…
继承的格式(Java类) Java中继承的注意事项 继承的好处与弊端 继承中成员变量的访问特点(对public形式的变量来说) 继承中成员函数的访问特点 this和super: 继承中构造方法的访问特点 super内存图 1.进入main函数,创建main函数栈 2.main栈区创建Zi类型的z变量赋予堆内存地址.堆内存new Zi():先创建一个int类型的age变量,值为20 3.进入构造函数,创建Zi函数栈空间.默认先执行父类无参构造函数:执行时会创建一个super区,在这个区里创建一个i…
引言:Java的修饰符根据修饰的对象不同,分为类修饰符.方法修饰符.变量修饰符,其中每种修饰符又分为访问控制修饰符和非访问控制修饰符.访问控制存在的原因:a.让客户端程序员无法触及他们不应该触及的部分 b.允许库设计者可以改变类内部的工作方式而不用担心影响到客户端程序员 一.访问控制修饰符Java中,可以使用访问控制符来保护对类.变量.方法和构造方法的访问.Java 支持 4 种不同的访问权限:default (即缺省,什么也不写): 在同一包内可见,不使用任何修饰符.使用对象:类.接口.变量.…
类的使用分为三个步骤: 类的加载->类的连接->类的初始化 一.类的加载 当程序运行的时候,系统会首先把我们要使用的Java类加载到内存中.这里加载的是编译后的.class文件 每个类加载到内存中,会创建一个对应的Class对象.这个Class对象保存了这个类有哪些成员(数据成员,方法成员) 注意:这里只有在某个Java类被使用的时候,才会被加载 加载时机:任何用到这个类的时候.(实例化,使用里面的静态静态成员....) 二.类加载器(JVM里面的一个东西) 作用:将.class文件(可能在磁…
方法: 方法就是把一堆需要反复执行的代码封装起来,如果项目需要调用这段代码时,直接调用方法名即可 方法相当于榨汁机, 材料:水果 产出物:果汁 参数(材料):进入方法的数据 返回值(产出物):就是方法根据参数执行后的结果怎么创建方法:访问修饰符 [静态static] 返回值类型 方法名(形参列表){                   方法体;                    return;    } 访问修饰符:权限修饰符,一共四个 public 公共的 返回值类型:方法最终返回的结果是…
List接口继承了Collection的方法  当然也有自己特有的方法向指定位置添加元素   add(索引,添加的元素); 移除指定索引的元素   remove(索引) 修改指定索引的元素   set(索引,修改的元素) package com.List集合; import java.util.ArrayList; import java.util.List; public class Demo01 { public static void main(String[] args) { /* *…
从一个程序开始: class dog { private String name; private String color; private int age; dog(String name) //仅给name赋值 { this.name=name; } dog(String name,String color) //仅给name,color赋值 { this.name=name;//但之前有过类似代码 this.color=color; } dog(String name,String co…
在类中除了成员方法之外,还存在一种特殊类型的方法,那就是构造方法.构造方法是一个与类同名的方法,对象的创建就是通过构造方法完成的.每当类实例化一个对象时,类都会自动调用构造方法. 构造方法的特点: 构造方法没有返回类型,也不能定义为void 构造方法的名称要与本类的名称相同 构造方法的主要作用是完成对象的初始化工作,它能把定义对象的参数传给对象成员 构造方法的使用方法: package mingri.chapter_6; public class BorrowABook { public Bor…
Java基本语法 一:关键字 在Java中有特殊含义的单词(50). 二:标志符 类名,函数名,变量名的名字的统称. 命名规则: 可以是字母,数字,下划线,$. 不能以数字开头. 见名之意. 驼峰规则. 三:基本数据类型 整数: byte--1个字节 short--2个字节 int--4个字节 long--8个字节 浮点数: float--4个字节 double--8个字节 boolean: true false 字符: char 1个字节 1 byte(字节) = 8 bit (位) 四:数据…
java开发实战经典 --单例模式 从CSDN以及博客园的相关文章学习的,摘做笔记. “java中单例模式是一种常见的设计模式,单例模式的写法有好几种,这里主要介绍三种:懒汉式单例.饿汉式单例.登记式单例. 单例模式有以下特点: 1.单例类只能有一个实例. 2.单例类必须自己创建自己的唯一实例. 3.单例类必须给所有其他对象提供这一实例. 单例模式确保某个类只有一个实例,而且自行实例化并向整个系统提供这个实例.在计算机系统中,线程池.缓存.日志对象.对话框.打印机.显卡的驱动程序对象常被设计成单…
构造方法是一种特殊的方法,它是一个与类同名且无返回值类型(连void也不能有)的方法. 对象的创建就是通过构造方法来完成,其功能主要是完成对象的初始化. 当类实例化一个对象时会自动调用构造方法.构造方法和其他方法一样也可以重载. 构造方法分为两种:无参构造方法 有参构造方法 类中必定有构造方法,若不写,系统自动添加无参构造.(接口不能被实例化,所以接口中没有构造方法.) 实例演示:计算坐标点的距离 实体类Point代码: public class Point { // 点的属性 横纵坐标 int…
JVM虚拟机默认异常处理机制 Java异常处理: 1.try...catch... 2.throw 1.try...catch... public class test{ public static void main(String[] args) { System.out.println("开始"); method(); System.out.println("结束"); } public static void method(){ int[] arr={1,2,…
package pack1; public class Student { private String name; private int age; //构造方法 //如果没有任何构造函数,系统会自动给一个无参构造函数 public Student(){ this.name=""; this.age=0; } public Student(String name,int age){ this.name=name; this.age=age; } public void show(){…
Java函数和函数重载 /* 函数定义: public static 返回类型 func(参数){ 方法体: } 函数重载 在调用时,Java虚拟机会通过参数的不同来区分同名的函数 满足: 1.多个函数在同一个类中 2.多个函数具有相同函数名 3.多个函数的参数不相同(类型不同或者数量不同) 注意:不能通过返回值来判定两个函数是否构成重载 函数传参 1.传递基本类型 3.传递引用类型 */ public class func { //函数重载 //func1:两整数之和 public stati…
作用:让数据更简洁,更易读,增加代码可读性. 为了用1,2,3,4,5分别表示老师,学生,小组,班主任,后勤,可以直接设置一个变量,让roleType = 1,但这样写代码可读性差. 也可以定义一个成员类,分别给不同的静态成员赋1,2,3,4,5,在需要调用的地方,直接通过RoleType.xxx去进行变量的赋值,如下: package com.Gary2; public class CustomEnum { public static void main(String[] args) { //…
一.死锁问题: 死锁是这样一种情形:多个线程同时被阻塞,它们中的一个或者全部都在等待某个资源被释放.由于线程被无限期地阻塞,因此程序不可能正常终止. 比如,线程一需要第一把所,此时锁处于空闲状态,给了线程一,线程二需要第二把所,第二把锁也处于空闲状态,给了线程二,这样是没问题的. 但是,当线程一需要第一把所,线程二需要第二把所后未归还,线程一又需要第二把锁,此时线程一就会一直等待线程二将锁归还,可线程二还是需要线程一的锁,也处于等待的状态,因此,线程一和线程二都保持循环等待,两个线程都无法做完事…