Java入门教程笔记(一)

Java入门教程笔记(二)

对前两份笔记的补充:
static关键词:
被static关键词修饰的变量或者方法可以不依赖于某个特定的对象存在
被static关键词修饰的方法只能调用同样被修饰的变量和方法

float类型
一个浮点数在不加修饰的情况下类型为double
后面加上小写字母f后表示float类型,例如:1.2f

作业详述:
代码块1:(Employee类)

package first;public class Employee {private String name;private int salary;public Employee(String n,int Sa){name = n;salary = Sa;}public String getName(){return name;}public int getSalary(){return salary;}
}


表示一个结构函数,跟C++中的结构函数写法一致
在代码块2中此处使用过Employee的结构函数

代码块2:EmployeeSort类

package first;import java.util.*;
public class EmployeeSort {public static boolean cmp(String a,String b){for(int i=0;i<a.length();i++)if(i==b.length())return false;else{if(a.charAt(i)<b.charAt(i))return true;else if(a.charAt(i)>b.charAt(i))return false;}return true;}static Employee[] a = new Employee[110];public static void main(String[] args){System.out.println("请先输入您的员工数量,然后输入他们的(名字+薪水):");Scanner in = new Scanner(System.in);int len = in.nextInt();for(int i=1;i<=len;i++){String nn = in.next();int mm = in.nextInt();a[i] = new Employee(nn,mm);}for(int i=1;i<=len;i++)for(int j=1;j<len;j++)if(cmp(a[j+1].getName(),a[j].getName())){//System.out.println(a[j].getName()+"  "+a[j+1].getName());Employee tmp = new Employee("\0",0);tmp = a[j];a[j] = a[j+1];a[j+1] = tmp;System.out.println(a[j].getName()+"<-"+a[j+1].getName());}System.out.println("按照名字排序(字典序)后的结果:");for(int i=1;i<=len;i++)System.out.println(a[i].getName()+a[i].getSalary());for(int i=1;i<=len;i++)for(int j=1;j<len;j++)if(a[j+1].getSalary()<a[j].getSalary()){Employee tmp = new Employee("\0",0);tmp = a[j];a[j] = a[j+1];a[j+1] = tmp;}System.out.println("按照薪水从小到大排序后的结果:");for(int i=1;i<=len;i++)System.out.println(a[i].getName()+a[i].getSalary());}
}


charAt(index)函数
表示字符串下标为index处的字符是什么
不能直接使用中括号

声明一个数组可以用

int[10] a;
//或者
int a[10];

类数组必须使用
类名[] 数组名 = new 类名[len]
这样的格式

一、Java中的详细定义方法
1、类的详细定义方法:
[public/friendly] [abstract/final] class 类名 [extends 父类名]
public是指访问权限修饰符,可以是public也可以是friendly
abstract/final 和 extends 父类名 与继承有关

2、变量和方法的详细定义:

变量:
[public/protected/private] [static] [final] 数据类型 变量名;

方法:
[public/protected/private] [static] [final/abstract] 返回值数据类型 方法名([参数列表])[throws 异常列表]{}

变量(属性)只要定义在同一个类里面,定义在哪里都行(没必要一定定义在前)

方法调用:如果在同一个类里面,可以直接通过方法名来调用
如果在不同的类里面,可以用类名.方法名(static)或者对象名。方法名(有无static皆可)来调用
变量调用同上

作业:
1、建立一个学生类,有学号、姓名、数学、语文、
英语3门课成绩、总分等信息,能输入输出学生数
据,和总成绩。
2、编写一个类,可以知道已经创建了多少个对象?
(借助静态属性static和构造函数)

我们直接把两个要求写进一个类里:
Student.java

package first;
public class Student {String name;String studentNumber;int chinese,math,english;int sumOfScore;public static int sumOfStudents;public Student(String nm,String num,int c,int m,int e){name = nm;studentNumber = num;chinese = c;math = m;english = e;sumOfScore = c + m + e;sumOfStudents++;}public int getSumOfScore(){return sumOfScore;}public String getName(){return name;}public String getStudentNumber(){return studentNumber;}
}

然后写个主程序
StudentSort.java

package first;
import java.util.*;
public class StudentSort {static Student[] an = new Student[110];public static void main(String[] args){System.out.println("请输入学生姓名、编号、语数外三科成绩(输入0结束):");Scanner in = new Scanner(System.in);while(true){String a = in.next();if(a.charAt(0)=='0')break;else{String b = in.next();int c = in.nextInt(),d = in.nextInt(),e = in.nextInt();an[Student.sumOfStudents] = new Student(a,b,c,d,e);}}System.out.println("您一共输入了 "+Student.sumOfStudents+" 个学生");System.out.println("他们的姓名、编号、总成绩为:");for(int i=0;i<Student.sumOfStudents;i++)System.out.println(an[i].getName()+" "+an[i].getStudentNumber()+" "+an[i].getSumOfScore());}
}
/*
ex-aid  20171801 85 67 90
lazer 20171804 67 86 82
snipe 20171803 67 45 90
brave 20171802 83 76 98
genm 20171805 62 81 78
parado 20171806 92 73 86
0
*/

Java入门教程笔记(三)相关推荐

  1. Java入门教程笔记(一)

    Java入门教程笔记(一) Java入门教程笔记系列仅适用于有过一定编程基础的人学习java时进行参考和借鉴 不适用于作为入门级教程 以下凡"小黑窗"都是表示"DOS命令 ...

  2. Java入门教程笔记03(程序流程控制)

    目录 顺序结构 (系统默认流程) 分支结构 if(3种格式) switch分支 switch分支注意事项: switch的穿透性 循环结构 for 循环 for循环案例1 for循环案例2 for循环 ...

  3. Java入门教程笔记07(面向对象基础)

    目录 构造器(构造方法) 目的: 作用: 构造器的分类 注意事项 this关键字 案例 封装: 封装的实现步骤 案例 JavaBean(实体类) 标准JavaBean须满足如下要求: 成员变量和局部变 ...

  4. Java入门学习笔记——郝斌(一)概述及面向对象

    Java入门学习笔记--郝斌 1.Java概述 java的起源和发展 java的特点 java的应用领域 java学习目标 环境变量的设置 为什么要设置path? path的设置 有关classpat ...

  5. socket 编程入门教程(三)TCP原理:5、TCP的三次握手(three-way handshake)

    socket 编程入门教程(三)TCP原理:5.TCP的三次握手(three-way handshake) 前面3个小节介绍了socket机制对TCP协议三次握手的实现,需要强调的是,与协议独立于实现 ...

  6. java 四字节uid,Java入门教程-序列化版本号serialVersionUID的作用

    原标题:Java入门教程-序列化版本号serialVersionUID的作用 Java序列化是将一个对象编码成一个字节流,反序列化将字节流编码转换成一个对象.序列化是Java中实现持久化存储的一种方法 ...

  7. QR code 二维码基础入门教程(三)

    QR code 入门教程(三) 承接上文,我们已经说过了数据编码和纠错码的生成,接下来我们继续下面的步骤 结构化最终的数据 所谓的结构化(Structure),说白了就是如何把之前生成的数据排成一个比 ...

  8. 九宫怎么排列和使用_剪映零基础入门教程第三十七篇:一学就会系列之九宫格小程序配音...

    很多玩儿抖音的朋友都看过九宫格视频,但是并不是每个玩抖音的人都会制作这个九宫格视频,实际这个需要借助小工具来帮忙,而常用抖音的朋友们会对剪映更加熟悉一些,且九宫格视频在剪映内的制作方式则比较简单.那么 ...

  9. Cesium:入门教程(三)之视窗配置

    Scene 涉及到与 viewer.scene 进行交互,该类控制了viewer中的所有图形元素. 在初始化视图之前,先学下基本的cesium 类型: Cartesian3:三维笛卡尔直角坐标 – 当 ...

最新文章

  1. spring environment_SpringBoot实战8-Spring基础-应用环境
  2. hibernate异常:not-null property references a null or transient value
  3. 西瓜书学习记录-决策树(第四章)
  4. 构建忽略测试_分类测试以减少构建时间
  5. docker 安装 与 卸载 centos
  6. React 开发常见报错解决方法
  7. [3G/4G]3G/4G模块开发
  8. 鼠标移开事件(onmouseout)
  9. gitlab git 安装
  10. json字符串数组转json数组
  11. Vue实现户籍管理系统户籍信息的添加与删除
  12. 怎么彻底删除users下的文件夹_什么工具可以有效清理C:\Users\用户名\AppData目录下的文件?...
  13. 使用grafana为zabbix绘制拓扑
  14. 很多情侣看了以后,不在关机
  15. php工具能自动出代码的,打造自己的PHP半自动化代码审计工具
  16. NVIDIA apex安装
  17. 可视化Docker管理工具-DockerUI
  18. STM32时钟系统了解
  19. matlab while 嵌套,MATLAB嵌套循环
  20. 打造无懈可击的Web设计——流动布局和弹性布局

热门文章

  1. myatoi, mystcmp, mystrcasecmp,mystrncmp
  2. openJudge1.4题库1~5题答案答案
  3. 「酒在人间,心向小馆」小酒馆取名须知
  4. 虚拟机设置固定IP,以及解决设置固定IP后不能上网的问题
  5. springboot available: expected at least 1 bean which qualifies as autowire candidate
  6. 百度翻译自定义其它语种翻译为中文
  7. nginx屏蔽http方法
  8. Wpf 脑力风暴游戏开发
  9. 出现git@github.com: Permission denied (publickey)的解决方法
  10. ipad分屏功能怎么用_微信支付分有什么用怎么涨分 支付分用途功能提升方法