课程总结
我就总结一下老师上课讲的一些知识点,分点总结一下:
1.三目运算符:
?:组成。例如max=x>y?x:y
相当于if-else语句吧,若满足条件的话就输出前面那个x。
2.构造方法:首先是构造方法的定义格式
class 类名称{
访问权限 类名称(类型1 参数1,类型2 参数2,.....){
程序语句;
其它 //切记构造方法没有返回值
}
}
注:程序一般会自动生成一个构造方法
重载:构造方法也能够重载,但是要保持构造方法的名称本身要求与类名称保持一致,即使得每个构造方法的参数类型或者参数个数不同,就能实现重载。
注意:对构造方法进行重载时,所有的重载方法按照参数的个数由多到少或者由少到多。即下面这样:
匿名对象:没有明确给出对象的名字,而且它只在堆内存中开辟空间,不存在栈内存中。
3.String类
用Sring声明的时候首字母要大写。
String有两种赋值方法:一是直接赋值
二是调用String类中的构造方法:
老师上课做过的一个实验就是得出“==”是用来进行地址值比较的。如果要判断两个字符串的内容是否相等的话就要用到String中专门提供的方法:public boolean equals(String str)。注:equals()方法是区分大小写的。。且equals()在相等的时候返回true,不等的时候返回false。
String类声明的字符串不能改变,见下图:
String还有很多类,具体就不一一总结了。
4.static关键字(静态属性或全局属性)
就是用它声明的属性便是公共属性,就是给整个程序共享。
用它声明的方法的话,也可以用其类名称直接调用,全局共享。
5.理解一下main方法
以下图片详见:
实验二 Java简单类与对象
一、实验目的
(1) 掌握类的定义,熟悉属性、构造函数、方法的作用,掌握用类作为类型声明变量和方法返回值;
(2) 理解类和对象的区别,掌握构造函数的使用,熟悉通过对象名引用实例的方法和属性;
(3) 理解static修饰付对类、类成员变量及类方法的影响。
二、实验内容
- 写一个名为Rectangle的类表示矩形。其属性包括宽width、高height和颜色color,width和height都是double型的,而color则是String类型的。要求该类具有:
(1) 使用构造函数完成各属性的初始赋值
(2) 使用get…()和set…()的形式完成属性的访问及修改
(3) 提供计算面积的getArea()方法和计算周长的getLength()方法
实验结果:
实验代码:
public class Rectangle {
private double height;
private double width;
private String color;
public Rectangle(double height, double width, String color) {
this.height = height;
this.width = width;
this.color = color;
}
public double getHeight() {
return height;
}
public void setHeight(double height) {
this.height = height;
}
public double getWidth() {
return width;
}
public void setWidth(double width) {
this.width = width;
}
public String getColor() {
return color;
}
public void setColor(String color) {
this.color = color;
}
public double getArea(){
return height*width;
}
public double getLength(){
return height*2+width*2;
}
}
public class Data {
public static void main(String[] args) {
Rectangle rectangle=new Rectangle(10,20,"yellow");
System.out.println(rectangle.getArea());
System.out.println(rectangle.getLength());
}
}
实验总结:这个题目我大多是照着书上那个例题来做的,然后那个主类没有搞,就一直无法编译,然后就是没有创造main主类。后面就成功了。其实这个题目还是可以的,就是出现了一些细节上的小问题。
2. 银行的账户记录Account有账户的唯一性标识(11个长度的字符和数字的组合),用户的姓名,开户日期,账户密码(六位的数字,可以用0开头),当前的余额。银行规定新开一个账户时,银行方面提供一个标识符、账户初始密码123456,客户提供姓名,开户时客户可以直接存入一笔初始账户金额,不提供时初始余额为0。定义该类,并要求该类提供如下方法:存款、取款、变更密码、可以分别查询账户的标识、姓名、开户日期、当前余额等信息。
实验结果:
实验代码:
import java.util.*;
public class Account {
private String name; //姓名
private String id; //账号标识符
private String dataopend; //日期
private String password; //密码
private double balance; //余额
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getDataopend() {
return dataopend;
}
public void setDataopend(String dataopend) {
this.dataopend = dataopend;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public double getBalance() {
return balance;
}
public void setBalance(double balance) {
this.balance = balance;
}
public void account() { //这里进行开户的类方法
System.out.println("请输入您的名字:");
Scanner s = new Scanner(System.in);
String name = s.nextLine(); //输入自己的名字
System.out.println("开户成功");
setId("0415 2846 3124 5742 652"); //自己的卡号
System.out.println("您的账号为:" + getId());
Date dat = new Date();
setDataopend(dat.toString()); //取当前日期
System.out.println("您的开户日期为:" + getDataopend());
setPassword("123456");
System.out.println("您的初始密码为:" + getPassword());
setBalance(0); //初始余额为0;
System.out.println("您当前的余额为:" + getBalance());
}
public void cun() { //存款
Scanner s = new Scanner(System.in);
System.out.println("存款");
System.out.println("请输入存款金额:");
setBalance(s.nextDouble() + getBalance()); //录入金额
System.out.println("交易成功!当前余额为:" + getBalance());
}
public void qu() { //取款
Scanner s = new Scanner(System.in);
System.out.println("取款");
System.out.println("请输入取款金额:");
double q = s.nextDouble();
if (q > getBalance()) { //可能取得金额大于所存金额
System.out.println("当前余额不足");
} else {
setBalance(getBalance() - q);
System.out.println("交易成功!当前余额为:" + getBalance()); //拿已有金额减去所取金额
}
}
public void 变更密码() {
Scanner ss = new Scanner(System.in);
System.out.println("请输入新密码");
String x = ss.next();
setPassword(x); //输入新密码
System.out.println("更改成功!");
}
import java.util.Scanner;
public class Kaishigongzuo { //这里开辟了一个main方法,以保证程序的运行
public static void main(String[] args){
System.out.println("WELCOME you!!!!");
Account per=new Account();
Scanner a=new Scanner(System.in);
per.account();
System.out.println("请选择服务项目:1.存款 2.取款 3.变更密码 ");
int x=a.nextInt();
switch(x){
case 1:per.cun();break;
case 2:per.qu();break;
case 3:per.变更密码();break;
}
System.out.println("操作完成,按任意键退出,谢谢!");
}
}
其实这个题目我一开始好多都不会的,但是我问了同学,而且也查阅了好多资料。比如代码开头那个import java.util.;假如你没这句话的话
如果你要用java.util包中的类Scanner的话你就需要这样使用
java.util.Scanner sc = new java.util.Scanner();而import java.util.;代表你导入了java.util包中的所有类,,这样的话你使用
Scanner就没那么麻烦了Scanner sc = new Scanner();
这样就能很方便的完成输入了,开始的时候和第一题的模式一样的,基本没问题,其实题目的前面一部分我没怎么看懂的,但是题目有一句“定义该类,并要求该类提供如下方法:存款、取款、变更密码、可以分别查询账户的标识、姓名、开户日期、当前余额等信息。”我就按着这个步骤一步一步来,但是在取款的时候没有考虑到会有余额不足的情况,还有查询不知道怎么去做。最后那个主函数,我做了好久,就是per.account();这一步没有加上去,然后一直报错,还有那个switch语句后面的那个存款也没有加括号,后面才记的老师说过,方法后要加()才对。总之花了我四五个小时才把这个题目搞出来的,没有百度和同学们的帮助,估计就搞了一下构造方法就不会了吧!
自我总结
我感觉这周真的挺忙的,还好在老师刚布置作业的时候我就已经写了一些了,下周一定会乖乖的按时间完成,上周的忘记自我总结了,而且格式也有点问题,那个代码还要给出解释,我也没给出,所以得了一个c的评分,但是我确实真的是很用心的去把每个代码敲出来了,还翻了一下上学期C语言的书籍,反正是花了蛮多时间的,以后的作业一定会好好参照那些评分为a的同学的作业,努力向他们看齐,争取让自己做得更好,加油!!!!!