2022-07-19 第十小组 石晓荟
**JAVA基础知识进阶02**
学习心得:
经过这几天的Java基础学习,我个人认为跟的有点吃力,尤其是讲解完一个案例,我希望晚自习老师可以给留点时间让我们自己多理解白天学的知识,不然新知识越来越多,旧知识还没有完全消化
知识总结:
1.构造器的回顾:
-
必须创建无参构造器,有参构造器可建可不建
-
类与类之间的has关系
2.this 关键字
-
this是关键字
-
this代表的是当前类的对象,this代表的是当前方法的调用者
-
this既然是代表方法的调用者,它实际上和对象的作用是一样的
-
既可以调属性,也可以调方法
-
一个类中可以有什么?
-
属性,方法,构造器
-
this不能用在static方法中。
-
开发中,this通常用在什么位置!
-
通常用在赋值,构造器赋值。
例子:定义一个Person 类,并实现开户,存取余额等功能
定义一个person类
public class Person {
String name;
int age;
Debit debit;
public Person() {
}
public Person(String name, int age) {
this.name = name;
this.age = age;
}
public void openAccount(Debit debit) {
this.debit = debit;
// 开户成功,显示一下开户信息
debit.show();
show();
}
public void in(double money) {
// 存款:修改余额并且重新赋值
debit.balance += money;
System.out.println("存款成功!余额为:" + debit.balance);
}
public void out(double money) {
// 取款:修改余额并且重新赋值
if(money <= debit.balance){
debit.balance -= money;
System.out.println("取款成功!余额为:" + debit.balance);
}else {
System.out.println("余额不足!余额为:" + debit.balance);
}
}
public void show() {
System.out.println("姓名:" + name + ",年龄:" + age);
}
public boolean valid(int pass){
if(pass == debit.password){
return true;
}
return false;
}`
点击查看代码
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
Person person = new Person("张三",25);
for(;;){
System.out.println("请选择功能:1.开户 2.存款 3.取款");
String flag = sc.next();
switch (flag) {
case "1":
System.out.println("请输入账户密码:");
int password = sc.nextInt();
System.out.println("请输入余额:");
double balance = sc.nextDouble();
Debit debit = new Debit("654987",password,balance);
person.openAccount(debit);
break;
case "2":
System.out.println("请输入密码:");
int pass = sc.nextInt();
boolean b = person.valid(pass);
if(b){
System.out.println("请输入存款金额:");
double money = sc.nextDouble();
person.in(money);
} else {
System.out.println("密码有误,无法存款!");
}
break;
case "3":
System.out.println("请输入密码:");
int pass1 = sc.nextInt();
boolean b1 = person.valid(pass1);
if(b1){
System.out.println("请输入取款金额:");
double money = sc.nextDouble();
person.out(money);
} else {
System.out.println("密码有误,无法取款!");
}
break;
}
}
}
-
1.代码层面
-
(1)属性私有化,所有的属性都要使用private封装 -
(2)提供一个公有的set,get方法 -
getter方法能够按照客户的期望返回格式化的数据 -
setter方法可以限制和检验setter方法传入的参数是否合法 -
隐藏对象的内部结构 -
正确定义一个类
-
(1)所有的属性私有化 -
(2)每个属性都有对应的setter、getter方法
`public class Dog {
private String color;
private int age;
public String getColor() {
return color;
}
public void setColor(String color) {
this.color = color;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public Dog(){}
public Dog(String color,int age){
this.color = color;
this.age = age;
}
public void show() {
System.out.println(color + "," + age);
}`

浙公网安备 33010602011771号