一、Date日期类
示例代码
二、构造方法与重载
1、构造方法与重载在Java基础中的作用
2、示例代码
三、包装类与基本数据类型
四 、字符串的本质与使用
五、实现商品批发总金额显示(三种方式存储数据)
------------------------------------------------------------------------------------------------------------------------------
一、Date日期类的使用
示例代码DateDemo
import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.GregorianCalendar;
public class DateDemo {
public static void main(String[] args) throws ParseException {
//日期类
Date date = new Date();
System.out.println(date);
System.out.println(date.getTime());
System.out.println(date.getYear());
//日期格式化类
DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String format = dateFormat.format(date);
System.out.println(format);
String newDate = "2008-08-08 08:08:08";
Date parse = dateFormat.parse(newDate);
System.out.println(parse);
//日历类
// Calendar calendar = Calendar.getInstance();
Calendar calendar = new GregorianCalendar();
System.out.println(calendar.getTime());
calendar.setTime(parse);
System.out.println(calendar.get(Calendar.YEAR));
System.out.println(calendar.get(Calendar.MONTH) + 1);
System.out.println(calendar.get(Calendar.DAY_OF_MONTH));
System.out.println(calendar.get(Calendar.HOUR_OF_DAY));
System.out.println(calendar.get(Calendar.MINUTE));
System.out.println(calendar.get(Calendar.SECOND));
}
}
二、构造方法与重载
1、构造方法与重载在Java基础中的作用
构造方法与重载:
定义一个网络用户类,要处理的信息有用户 ID、用户密码、 email 地址。
在建立类的实例时把以上三个信息都作为构造函数的参数输入,
其中用户 ID 和用户密码存在时,email缺省时 ,email地址是用户 ID 加上字符串"@gameschool.com"。
public class NetUser {
private String ID;
private String password;
private String email;
public NetUser(String ID,String password,String email){
this.ID = ID;
this.password = password;
this.email = email;
}
public NetUser(String ID, String password) {
this.ID = ID;
this.password = password;
}
public void checkEmail(){
if(this.email != null){
this.email = email;
}else{
this.email = this.ID + "@gameschool.com";
}
}
@Override
public String toString() {
return "NetUser{" +
"ID='" + ID + ''' +
", password='" + password + ''' +
", email='" + email + ''' +
'}';
}
public static void main(String[] args) {
NetUser netUser = new NetUser("10001","6666666","ilovejava@sina.com");
netUser.checkEmail();
System.out.println(netUser);
System.out.println("****************************************************");
NetUser netUser2 = new NetUser("10002","8888888");
netUser2.checkEmail();
System.out.println(netUser2);
}
}
编写 Java 程序用于显示人的姓名和年龄。
定义一个人类Person。
该类中应该有两个私有属性:
姓名 (name) 和年龄 (age) 。
定义构造方法用来初始化数据成员。再定义显示(display()) 方法将姓名和年龄打印出来。
在main 方法中创建人类的实例然后将信息显示。
public class Person {
private String name;
private int age;
public Person(String name,int age){
this.name = name;
this.age = age;
}
public void display(){
System.out.println("姓名:" + this.name + ",年龄:" + this.age);
}
public static void main(String[] args) {
Person person = new Person("小白",22);
person.display();
}
}
三、包装类与基本数据类
包装类是将基本数据类型封装成一个类,包含属性和方法
使用:
在使用过程中,会涉及到自动装箱和自动拆箱
装箱:将基本数据类型转换成包装类
拆箱:将包装类转换成基本数据类型
public class TestInteger {
public static void main(String[] args) {
// int a = 10;
//自动装箱
// Integer a1 = Integer.valueOf(a);
// Integer i = new Integer(10);
//自动拆箱
// i = i.intValue();
// System.out.println(a == i);
// Integer i1 = 100;
// Integer i2 = 100;
// Integer i3 = 200;
// Integer i4 = 200;
// System.out.println(i1 == i2);
// System.out.println(i3 == i4);
// Double d1 = 10.0;
//自动装箱
// Double d1 = Double.valueOf(10.0);
// Double d2 = 10.0;
// Double d3 = 20.0;
// Double d4 = 20.0;
// System.out.println(d1 == d2);
// System.out.println(d3 == d4);
//字符串类型转化成Integer类型
// String s = "123";
// Integer i1 = Integer.valueOf(s);
// int i2 = Integer.parseInt(s);
// Integer i3 = new Integer(s);
// System.out.println(i3 + 1);
// String s = "abc";
// int i = Integer.parseInt(s);
//Integer类型转化成字符串类型
Integer i = 10;
String s1 = i.toString();
String s2 = String.valueOf(i);
String s3 = i + "";
System.out.println(s3 + 1);
//String-->double ?
}
}
四 、字符串的本质与使用
注意:常量池在1.7之后放置在了堆空间之中
字符串的使用:
1、创建
String str = "abc";
String str2 = new String("abc");
两种方式都可以用,只不过第一种使用比较多
2、字符串的本质
字符串的本质是字符数组或者叫做字符序列
String类使用final修饰,不可以被继承
使用equals方法比较的是字符数组的每一个位置的值
String是一个不可变对象
public class TestString {
public static void main(String[] args) {
// String s1 = "abc";
// String s2 = new String("abc");
// s2 = s2.intern();
// System.out.println(s1 == s2);
// System.out.println(s1.equals(s2));
// String s = "abcdefghijkalmnopqrst";
//取出指定下标的字符
// System.out.println(s.charAt(2));
//数组拷贝的操作
// System.out.println(s.concat("123"));
//获取指定字符在字符串中第一次出现的索引值
// System.out.println(s.indexOf("a"));
// System.out.println(s.length());
//获取一个从指定下标开始一直到结尾的子字符串
// System.out.println(s.substring(2));
//截头不结尾
// System.out.println(s.substring(2,6));
// String s1 = "abc";
// String s2 = new String("abc");
// s2 = s2.intern();
// System.out.println(s1 == s2);
// String a = "abc";
// String b = "def";
// String c = "abcdef";
// String d = (a + b).intern();
// String e = "abc" + "def";
// System.out.println(c == d);
// System.out.println(c == e);
// String s = "a" + "b" + "c";
// String s1 ="a";
// String s2 = "b";
// String s3 = "c";
// String ss = s1 + s2 + s3;
}
}
五、实现商品批发总金额显示
Product.java
public class Product {
private int proId;
private String proName;
private double price;
public Product() {
}
public Product(int proId, String proName,double price) {
this.proId = proId;
this.proName = proName;
this.price = price;
}
public int getProId() {
return proId;
}
public void setProId(int proId) {
this.proId = proId;
}
public String getProName() {
return proName;
}
public void setProName(String proName) {
this.proName = proName;
}
public double getPrice() {
return price;
}
public void setPrice(double price) {
this.price = price;
}
@Override
public String toString() {
return
"t" +proName + "t"
;
}
}
Goods.java(定义数组存储数据)
package Goods;
import java.util.Scanner;
public class Goods {
//定义数组存储商品名称
String[] products = new String[]{"电风扇","洗衣机","电视机","冰箱","空调机"};
//定义数组存储商品价格
double[] prices = new double[]{124.23,4500.0,8800.9,5000.88,4456.0};
//登录验证
public boolean login(){
//标识登录是否成功
boolean flag = false;
Scanner input = new Scanner(System.in);
System.out.print("请输入用户名:");
String username = input.next();
System.out.print("请输入密码:");
String password = input.next();
//验证
if("TOM".equals(username) && ("123").equals(password)){
System.out.println("登录成功");
//修改标志位
flag = true;
}
return flag;
}
//指定格式显示总金额
public String change(double price){
StringBuffer stringBuffer = new StringBuffer(String.valueOf(price));
//处理价格的字符串,每三位加,
for (int i = stringBuffer.indexOf(".") - 3; i > 0 ; i = i-3) {
//添加,
stringBuffer.insert(i,",");
}
return stringBuffer.toString();
}
//显示商品列表
public void show(){
System.out.println("****************欢迎进入商品批发城****************");
System.out.println("tt编号t商品t价格");
//遍历数组
for (int i = 0; i < products.length; i++) {
System.out.print("tt" + (i+1));
System.out.print("tt" + products[i]);
System.out.print("tt" + change(prices[i]) + "n");
}
}
//测试
public static void main(String[] args) {
//创建对象
Goods goods = new Goods();
Scanner input = new Scanner(System.in);
//验证用户是否合法
if(goods.login()){
//显示商品列表
goods.show();
System.out.print("请输入您批发的商品编号:");
int proId = Integer.parseInt(input.next());
System.out.print("请输入批发数量:");
int proNum = Integer.parseInt(input.next());
//定义一个变量来存储最终的总价格
double totalPrice = goods.prices[proId-1] * proNum;
System.out.println("您需要付款:" + goods.change(totalPrice));
}
}
}
Goods2.java(定义对象数组存储数据)
package Goods;
import java.util.Scanner;
public class Goods2 {
// 定义对象数组存储数据
Product[] products = new Product[]{
new Product(1, "电风扇", 124.23),
new Product(2, "洗衣机", 4500.0),
new Product(3,"电视机",8800.9),
new Product(4,"冰箱",5000.88),
new Product(5,"空调机",4456.0)
};
// 登录验证
public boolean login() {
// 标识登录是否成功
boolean flag = false;
Scanner inPut = new Scanner(System.in);
System.out.print("请输入用户名:");
String Username = inPut.next();
System.out.print("请输入密码:");
String password = inPut.next();
if ("TOM".equals(Username) && "123".equals(password)) {
// 修改标志位
flag = true;
System.out.println("登录成功!");
}
return flag;
}
// 指定格式显示总金额
public String change(double price){
StringBuffer stringBuffer = new StringBuffer(String.valueOf(price));
//处理价格的字符串,每三位加,
for (int i = stringBuffer.indexOf(".") - 3; i > 0 ; i = i-3) {
//添加,
stringBuffer.insert(i,",");
}
return stringBuffer.toString();
}
//显示商品列表
public void show() {
System.out.println("***************欢迎进入商品批发城***************");
System.out.println("tt编号t商品t价格");
// 遍历数组
for (int i = 0; i < products.length; i++) {
System.out.print("tt" + products[i].getProId());
System.out.print("t" + products[i].getProName());
System.out.print("t" + change(products[i].getPrice()) + "n");
}
System.out.println("***************************************");
}
public static void main(String[] args) {
// 创建对象
Goods2 goods = new Goods2();
Scanner input = new Scanner(System.in);
// 验证登录是否合法
if (goods.login()) {
// 显示商品列表
goods.show();
System.out.print("请输入您批发的商品编号:");
int proId = Integer.parseInt(input.next());
System.out.print("请输入批发数量:");
int proNum = Integer.parseInt(input.next());
//定义一个变量来存储最终的总价格
double totalPrice = goods.products[proId - 1].getPrice() * proNum;
System.out.print("您需要付款:" + goods.change(totalPrice));
}
}
}
Goods3.java(定义集合存储数据)
package Goods;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import java.util.Scanner;
public class Goods3 {
// 定义集合存储数据
List list =new ArrayList();
public Goods3(){
list.add(new Product(1, "电风扇", 124.23));
list.add(new Product(2, "洗衣机", 4500.0));
list.add(new Product(3,"电视机",8800.9));
list.add(new Product(4,"冰箱",5000.88));
list.add(new Product(5,"空调机",4456.0));
}
// 登录验证
public boolean login() {
// 标识登录是否成功
boolean flag = false;
Scanner inPut = new Scanner(System.in);
System.out.print("请输入用户名:");
String Username = inPut.next();
System.out.print("请输入密码:");
String password = inPut.next();
if ("TOM".equals(Username) && "123".equals(password)) {
// 修改标志位
flag = true;
System.out.println("登录成功!");
}
return flag;
}
// 指定格式显示总金额
public String change(double price) {
StringBuffer stringBuffer = new StringBuffer(String.valueOf(price));
//处理价格的字符串,每三位加,
for (int i = stringBuffer.indexOf(".") - 3; i > 0; i = i - 3) {
//添加,
stringBuffer.insert(i, ",");
}
return stringBuffer.toString();
}
// 显示商品列表
public void show() {
System.out.println("***************欢迎进入商品批发城***************");
System.out.println("tt编号" + "t商品" + "t价格");
// 遍历数组
for (Product product :list) {
System.out.print("tt" + product.getProId());
System.out.print("t" + product.getProName());
System.out.print("t" + change(product.getPrice()) + "n");
}
System.out.println("***************************************");
}
public static void main(String[] args) {
// 创建对象
Goods3 goods = new Goods3();
Scanner input = new Scanner(System.in);
// 验证登录是否合法
if (goods.login()) {
// 显示商品列表
goods.show();
System.out.print("请输入您批发的商品编号:");
int proId = Integer.parseInt(input.next());
System.out.print("请输入批发数量:");
int proNum = Integer.parseInt(input.next());
//定义一个变量来存储最终的总价格
double price= 0;
//遍历集合,取出对应商品编号的价格
for (Iterator iterator = goods.list.iterator();iterator.hasNext();){
Product product = iterator.next();
//根据输入的商品编号获取对应商品的价格
if(proId == product.getProId()){
price = product.getPrice();
}
}
double totalPrice =price* proNum;
System.out.print("您需要付款:" + goods.change(totalPrice));
}
}
} 


