java类的学习

先上一个代码

package bankCard;
import java.util.Scanner; // 银行卡类
public class bankCard {
// 静态变量
static String host = "www.gcsn.site";
// 成员变量
private static int ID; // 账号
private double blance; // 余额 // 构造函数
public bankCard() {
// 无参构造函数
}
public bankCard(int id, double money) {
//有参构造函数
ID = id;
blance = money;
} // 成员函数(共有) / 成员方法
public double intId() {
// 存钱
System.out.println("请输入您要存的钱数,只能是整钱");
Scanner write_in = new Scanner(System.in);
// 局部变量
double money = write_in.nextInt();
this.blance +=money;
System.out.println("您的ID卡号为"+ID+"的账户存入"+money+"元余额为"+blance); return blance;
}
// 成员函数(共有)
public double outId() {
// 取钱
System.out.println("请输入您要取出的钱数,只能是整钱");
Scanner write_in = new Scanner(System.in);
double money = write_in.nextInt();
if(money > blance) {
System.out.println("您的余额不足!当前余额为"+blance);
}else {
this.blance -=money;
System.out.println("您的ID卡号为"+ID+"的账户取出"+money+"元,剩余余额为"+blance);
} return blance;
} public static void main(String [] args) {
// 推荐使用类来访问
System.out.println("static-----" +bankCard.host);
System.out.println("static-----" +host); // 静态成员函数可以直接访问静态变量
bankCard b1 = new bankCard(1234, 2000.00);
b1.intId();
b1.outId();
}
}

成员变量和局部变量

成员变量和局部变量的区别

  • 作用域不同
局部变量只能在定义它的方法内使用。
成员变量则是可以在整个类内都可以使用。
  • 初始值不同
java会给成员变量一个初始值,
java不会给局部变量一个初始值(必须自己初始化)。
  • 两类变量同名时,局部变量具有更高的优先级

构造方法

var car = new Car();

// 通常我们都会new 实例化一个对象,其实new后面跟的就是构造方法
使用new + 构造方法 来实例化一个新的对象。
构造方法是定义在类中的,用来初始化一个对象。
构造方法必须于类名相同,且没有返回值。 当没有构造方法时,系统会自动添加一个无参的构造方法;
如果自定义了一个构造方法,那么系统将不会为我们创建无参的构造方法了,也就无法调用无参的构造方法。 构造方法的重载:
方法名相同,但是参数不同的多个方法,调用的时候会根据不同的参数来选择相应的构造函数。

类的成员方法

1 类的成员方法的定义

Java 中的 static 使用之【静态变量】

我们可以基于一个类创建多个该类的对象,每个对象都拥有自己的成员,互相独立。然而在某些时候,我们更希望【该类所有的对象共享同一个成员】。此时就是 static 大显身手的时候了!!

Java 中被 static 修饰的成员称为【静态成员或类成员】。它属于整个类所有,而不是某个对象所有,即被类的所有对象所共享。静态成员可以使用类名直接访问,也可以使用对象名进行访问。当然,鉴于他作用的特殊性更推荐用类名访问~~

  • 静态成员属于整个类,当系统第一次使用该类时,就会为其分配内存空间直到该类被卸载才会进行资源回收!~~
public class HelloWorld {

    // 定义静态变量,保存班级名称
static String host = "www.gcsn.site"; public static void main(String[] args) {
HelloWorld.host = 'www.baidu.com';
// 访问静态变量,输出班级名称
System.out.println("static-----" +HelloWorld.host);
}
}

Java 中的 static 使用之【静态方法】

与静态变量一样,我们也可以使用 static 修饰方法,称为【静态方法或类方法】。其实之前我们一直写的 main 方法就是静态方法。

1. 静态方法可以直接调用静态变量,但是不能直接调用非静态变量

如果希望在静态方法中调用非静态变量,可以通过创建类的对象,然后通过对象来访问非静态变量。如

2、 在普通成员方法中,则可以直接访问同类的非静态变量和静态变量,

3、 静态方法中不能直接调用非静态方法,需要通过对象来访问非静态方法。

总结

静态方法: 能够直接调用静态成员,不可以直接调用非静态成员, 不能够直接调用非静态方法
普通方法, 既可以直接访问静态变量又可以访问非静态变量

Java 中的初始化块和静态初始化块

如果使用 static 修饰初始化块,就称为静态初始化块。

静态初始化块只在类加载时执行,且只会执行一次,同时静态初始化块只能给静态变量赋值,不能初始化普通的成员变量。

  • 来看一个例子

最新文章

  1. CatchPacket网络抓包软件
  2. (Hibernate进阶)Hibernate系列——总结篇(九)
  3. [wikioi]装箱问题
  4. Ajax之旅(一)--什么是Ajax
  5. CentOS 7重装mysql编译过程报错解决方法
  6. 编译型/解释型语言,什么时候用shell
  7. iOS开发之UIApplication
  8. bzoj 1046 : [HAOI2007]上升序列 dp
  9. HDU 3117 Fibonacci Numbers(围绕四个租赁斐波那契,通过计++乘坐高速动力矩阵)
  10. Java多线程之进程和线程
  11. windbg Symbol file path
  12. UI自动化测试(四)AutoIT工具使用和robot对象模拟键盘按键操作
  13. Micro Templating源码分析
  14. MUI在项目中使用时遇到的问题的个人分享
  15. Android编码学习之Adapter
  16. Js 跳出两级循环的方法
  17. CentOS-6.9安装配置JDK-7
  18. centos7 docker私有仓库搭建
  19. tensorflow进阶篇-4(损失函数2)
  20. 手机网页meta,添加使其兼容各种浏览器

热门文章

  1. Python Count函数的应用
  2. Codeforces - Watermelon
  3. ssl & ike/ipsec
  4. Array(数组)对象-->reverse() 方法
  5. Struts2-学习笔记系列(5)-配置action
  6. 玩家的numpertpry 对象 中 不仅仅要同步 君主武将的等级,阶级也要同步
  7. d3.js v4曲线图的拖拽功能实现Zoom
  8. 小说免费看!python爬虫框架scrapy 爬取纵横网
  9. 弱智破解法——用python破解WIFI
  10. 胜利大逃亡 BFS