最核心设计类
第一章
一,面向对象学习的三条主线(4-6)
(174)
1.JAVA类以及类的成员:属性、方法、构造器、代码块、内部类
2.面向对象的三大特征:封装性、继承性、多态性。
3.其他关键字
二,面向对象和面向过程的区别
(175)
1.面向过程,考虑怎么做
2.面向对象,考虑谁来做(封装的调用)
三,类和对象
(176)
类:对一类事物的描述,是抽象的。
对象:对类的实例化。
四,设计类(属性和方法)
(177)
属性=成员变量=field(堆空间)
方法=成员方法=函数(栈空间)
五,类和对象在栈和堆
(179)
如果创建了一个类多个对象,则每个对象都独立拥有一套属性。
如果修改一个对象A,B的属性不受影响
开始画图
六,类和对象在栈和堆画图
(182-183)
成员变量VS局部变量
1.声明的位置不同
成员变量:在类的{}中
局部变量:在方法中、形参中、代码块内、构造器形参、构造器内部的变量
2.权限修饰符不同
成员变量:可以使用权限修饰符
局部变量:不可以写,其实用方法代替了
3.默认初始化值
成员变量:初始化为数据类型的初始化值定。
局部变量:没有初始化值,声明的时候必须赋值。特别的,形参是在调用的时候赋值。
4.内存中加载的位置不同
成员变量:在堆空间中
局部变量:在栈空间中
七,如何定义方法
(184-186)
1.有返回值类型的return是由方法类型定的如
Public string(返回值类型) name(){
return name
}
2,返回值的命名如果在方法里输出可以是随意的名字,如果通过调用的方式就应该要return一个属性名才可以调用
八、return
(187)
两个作用
第一个:结束一个方法。
有返回值类型的方法:return 数据
九、方法的使用
一个类中 方法内可以调用方法,属性。格式 方法名();
不同类中怎么调用方法
1.import 包 new一个对象进行调用
public int jj(int age){
ff fa =new ff();
fa.eat();
return age*22;
}
2.在属性就new 好对象,属性内调用
public class text01 {
String name ;
int age;
boolean male;
ff fa =new ff();
public text01(int k){
System.out.println(k);
}
public int jj(ff fa){
fa.eat();
return age*22;
}
}
一个方法内不能再定义方法,可以调用别的或自己的方法。
实例:
package bank;
public class user {
public static void main(String[] args) {
Customer use =new Customer("kevin","deng");
Account ac=new Account(1000,100,0.126);
use.setAccount(ac);
}
}
//这里我使用user来调用 两个类
public class Customer {
private String firstname;
private String lastname;
private Account account;
public Customer(String f, String l) {
f = firstname;
l = lastname;
}
public void setAccount(Account account) {
this.account = account;
}
public Account getAccount() {
return account;
}
}
//这里是一个类,套用了后面一个类
public class Account {
private int id;
private double balance;
private double annuallnterestRate;
public Account(int id,double balance,double annuallnterestRate){
this.id=id;
this.balance=balance;
this.annuallnterestRate=annuallnterestRate;
}
public void setBalance(double balance) {
this.balance = balance;
}
public double getBalance() {
return balance;
}
public void setId(int id) {
this.id = id;
}
public int getId() {
return id;
}
public void setAnnuallnterestRate(double annuallnterestRate) {
this.annuallnterestRate = annuallnterestRate;
}
public double getAnnuallnterestRate() {
return annuallnterestRate;
}
public double deposit(double de){
return balance-de;
}
public double withdraw(double wi){
return balance-wi;
}
}
**//这是最后一个类,我原来想通过第一个类来调用第二个类在第二个中调用第三个,因为我在第二个类里调用了第三个类,居然报错了。解决方法是要在use里也new一个第三个类的对象。
public class user {
public static void main(String[] args) {
Customer use =new Customer("kevin","deng");
use.setAccount();//没有可以填的内容,但是提示需要内容,new了一个对象之后把对象放进去就OK了,相当于第二个类获得了第三个类的地址值。
}
}
总结:
用一个main来调用几个给封装好的方法必须在main方法中都要给几个类new一个对象才行。**
通过use调用三个
**要用use.getAccount. 来调用第三个类,不能用use.getAccount. 嗲用,他是设置类的。
**