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 修饰初始化块,就称为静态初始化块。

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

  • 来看一个例子

JAVA学习之路 (五) 类的更多相关文章

  1. Java学习之路(五):常见的对象操作

    Object对象 我们先来介绍一下API API(Application Programming Interface):应用程序编程接口 Java API 就是Java提供给我们使用的类,这些类将底层 ...

  2. Java学习之路(五)

    1:补充: 使用super也可以调用父类的成员函数  格式 :  super.函数名(); 2:抽象类与抽象函数 抽象函数的定义: 只有函数的定义,没有函数体的函数被称为抽象函数 抽象类的定义: 使用 ...

  3. java学习之路--String类的基本方法

    String类常见的功能 获取 1.1 字符串中包含的字符数,也就是获取字符串的长度:int length(); 1.2 根据位置获取某个位置上的字符:char charAt(int index) 1 ...

  4. Java学习之路(转)

    Java学习之路(书籍推荐)   一.基础类 1.<Thinking in java>(阅读2遍),入门第一位是建立正确的概念 2.<Core Java>这本书更贴近实践,更多 ...

  5. 新篇章之我的java学习之路下

    昨天写下了人生的第一篇博客,今天接着写我的java学习之路有关开发及框架的学习过程. 想要学好java语言,只学习一些java的基本语法对实际开发中的用处还是不大的,所以我们还要掌握一些有关javaW ...

  6. java学习之路之javaSE基础1

    <h2>java学习之路之javaSE基础1</h2> <div> ###01.01_计算机基础知识(计算机概述)(了解)* A:什么是计算机?计算机在生活中的应用 ...

  7. 201671010140. 2016-2017-2 《Java程序设计》java学习第十五周

    java学习第十五周 Java的GUI界面设计,框架以及主要部件填充,归置,布局管理,在第十一章和第十二章进行了系统的学习,在这两章的知识奠基下,可以简单的构造一个GUI用户界面,在两周的学习后,可以 ...

  8. JAVA学习之路与大家分享

    这是我四年以前总结的JAVA学习之路,希望对初学者或想从事JAVA开发的人有帮助. 本人是软件工程专业出身,先后学过C.C++.JAVA.VB.delphi等等开发语言以及网络相关管理技术.哎,好久不 ...

  9. Java学习-041-颜色工具类(RGB,HEX)

    在日常的网页开发中,经常需要进行颜色数值获取.转换,例如获取红色,获取蓝色,获取绿色,RGB转十六进制颜色,十六进制颜色转RGB等,因而在学习过程中,写了一个小工具类,仅供各位小主参考! 多不闲言,直 ...

  10. Java学习-049-正则工具类

    自去年九月份决定再次入学和职业资格进阶,开始备战二者考试至今,以及当下进行中的职称申请,犹如孤独的狼,不断前行在路上,而今凡凡总总的已历8月... 不感慨了,如下为一园友需要的正则工具类,直接上码: ...

随机推荐

  1. C++头文件应该干的事情

    C++头文件应该干的事情 最近在写自己项目的时候,头文件老是编译错误,后来发现还是对头文件掌握不牢. 头文件应该干什么? 所谓的头文件,其实它的内容跟 .cpp 文件中的内容是一样的,都是 C++ 的 ...

  2. Shell:Day07.笔记

    函数:1.函数介绍function 为了避免代码重复使用,我们一般通过函数编写代码块,而这一个代码块用来实现某种功能. 且,这个功能在后面的代码中,会重复调用:  def 2.函数的语法格式 函数的写 ...

  3. 最小生成树算法【图解】--一文带你理解什么是Prim算法和Kruskal算法

    假设以下情景,有一块木板,板上钉上了一些钉子,这些钉子可以由一些细绳连接起来.假设每个钉子可以通过一根或者多根细绳连接起来,那么一定存在这样的情况,即用最少的细绳把所有钉子连接起来. 更为实际的情景是 ...

  4. Springboot2(二)通过微信熟悉熟悉Spring-boot yml配置文件

    前言:Spring-boot的yml配置文件,这里就不在借助人.狗介绍了,试试套下微信! 创建yml文件 值得注意的是下图中有三种命名方法,前两种是对的,且第二种必须是横线而不是下划线! yml文件的 ...

  5. Java第十六天,list接口

    List接口 1.三大特点: ① 有序.② 有索引. ③ 允许存在重复元素. 注意: ① 利用list接口的索引执行操作时,要防止索引越界引起的程序错误. 2.基本使用: 针对List接口有索引的特点 ...

  6. hadoop(五)scp命令copy文件和配置(完全分布式准备二)|7

    机器的克隆参考centos7克隆ip|机器名|映射关系|别名配置(hadoop完全分布式准备一) 那么问题来了,如果我们有30台机器,之间可以互相访问,那我们如何快速安装配置环境如jdk hadoop ...

  7. springIoc中的单列对象的分析

    最近有个同事去面试,其中有一个问题是关于spring单例的.本篇博文就发表一下小编我自己的理解~~. 使用过spring的程序猿应该都知道,我们的bean(controller.service和Dao ...

  8. CVPR2020|3D-VID:基于LiDar Video信息的3D目标检测框架

    作者:蒋天园 Date:2020-04-18 来源:3D-VID:基于LiDar Video信息的3D目标检测框架|CVPR2020 Brief paper地址:https://arxiv.org/p ...

  9. Gallery实现图片拖动切换

    Gallery中文意思为画廊,通过Gallery能够实现用手指在屏幕上滑动实现图片的拖动.效果如下: 上面,为了学习了解,只用了android默认的Icon图片. 主程序中创建了一个继承自BaseAd ...

  10. (转) Windows Mobile和Windows CE的区别

    转发自 http://blog.sina.com.cn/s/blog_6250bbe60100tsf3.html WinCE Windows CE 是一个可定制的操作系统: Windows Mobil ...