JAVA学习之路 (五) 类
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学习之路 (五) 类的更多相关文章
- Java学习之路(五):常见的对象操作
Object对象 我们先来介绍一下API API(Application Programming Interface):应用程序编程接口 Java API 就是Java提供给我们使用的类,这些类将底层 ...
- Java学习之路(五)
1:补充: 使用super也可以调用父类的成员函数 格式 : super.函数名(); 2:抽象类与抽象函数 抽象函数的定义: 只有函数的定义,没有函数体的函数被称为抽象函数 抽象类的定义: 使用 ...
- java学习之路--String类的基本方法
String类常见的功能 获取 1.1 字符串中包含的字符数,也就是获取字符串的长度:int length(); 1.2 根据位置获取某个位置上的字符:char charAt(int index) 1 ...
- Java学习之路(转)
Java学习之路(书籍推荐) 一.基础类 1.<Thinking in java>(阅读2遍),入门第一位是建立正确的概念 2.<Core Java>这本书更贴近实践,更多 ...
- 新篇章之我的java学习之路下
昨天写下了人生的第一篇博客,今天接着写我的java学习之路有关开发及框架的学习过程. 想要学好java语言,只学习一些java的基本语法对实际开发中的用处还是不大的,所以我们还要掌握一些有关javaW ...
- java学习之路之javaSE基础1
<h2>java学习之路之javaSE基础1</h2> <div> ###01.01_计算机基础知识(计算机概述)(了解)* A:什么是计算机?计算机在生活中的应用 ...
- 201671010140. 2016-2017-2 《Java程序设计》java学习第十五周
java学习第十五周 Java的GUI界面设计,框架以及主要部件填充,归置,布局管理,在第十一章和第十二章进行了系统的学习,在这两章的知识奠基下,可以简单的构造一个GUI用户界面,在两周的学习后,可以 ...
- JAVA学习之路与大家分享
这是我四年以前总结的JAVA学习之路,希望对初学者或想从事JAVA开发的人有帮助. 本人是软件工程专业出身,先后学过C.C++.JAVA.VB.delphi等等开发语言以及网络相关管理技术.哎,好久不 ...
- Java学习-041-颜色工具类(RGB,HEX)
在日常的网页开发中,经常需要进行颜色数值获取.转换,例如获取红色,获取蓝色,获取绿色,RGB转十六进制颜色,十六进制颜色转RGB等,因而在学习过程中,写了一个小工具类,仅供各位小主参考! 多不闲言,直 ...
- Java学习-049-正则工具类
自去年九月份决定再次入学和职业资格进阶,开始备战二者考试至今,以及当下进行中的职称申请,犹如孤独的狼,不断前行在路上,而今凡凡总总的已历8月... 不感慨了,如下为一园友需要的正则工具类,直接上码: ...
随机推荐
- C++头文件应该干的事情
C++头文件应该干的事情 最近在写自己项目的时候,头文件老是编译错误,后来发现还是对头文件掌握不牢. 头文件应该干什么? 所谓的头文件,其实它的内容跟 .cpp 文件中的内容是一样的,都是 C++ 的 ...
- Shell:Day07.笔记
函数:1.函数介绍function 为了避免代码重复使用,我们一般通过函数编写代码块,而这一个代码块用来实现某种功能. 且,这个功能在后面的代码中,会重复调用: def 2.函数的语法格式 函数的写 ...
- 最小生成树算法【图解】--一文带你理解什么是Prim算法和Kruskal算法
假设以下情景,有一块木板,板上钉上了一些钉子,这些钉子可以由一些细绳连接起来.假设每个钉子可以通过一根或者多根细绳连接起来,那么一定存在这样的情况,即用最少的细绳把所有钉子连接起来. 更为实际的情景是 ...
- Springboot2(二)通过微信熟悉熟悉Spring-boot yml配置文件
前言:Spring-boot的yml配置文件,这里就不在借助人.狗介绍了,试试套下微信! 创建yml文件 值得注意的是下图中有三种命名方法,前两种是对的,且第二种必须是横线而不是下划线! yml文件的 ...
- Java第十六天,list接口
List接口 1.三大特点: ① 有序.② 有索引. ③ 允许存在重复元素. 注意: ① 利用list接口的索引执行操作时,要防止索引越界引起的程序错误. 2.基本使用: 针对List接口有索引的特点 ...
- hadoop(五)scp命令copy文件和配置(完全分布式准备二)|7
机器的克隆参考centos7克隆ip|机器名|映射关系|别名配置(hadoop完全分布式准备一) 那么问题来了,如果我们有30台机器,之间可以互相访问,那我们如何快速安装配置环境如jdk hadoop ...
- springIoc中的单列对象的分析
最近有个同事去面试,其中有一个问题是关于spring单例的.本篇博文就发表一下小编我自己的理解~~. 使用过spring的程序猿应该都知道,我们的bean(controller.service和Dao ...
- CVPR2020|3D-VID:基于LiDar Video信息的3D目标检测框架
作者:蒋天园 Date:2020-04-18 来源:3D-VID:基于LiDar Video信息的3D目标检测框架|CVPR2020 Brief paper地址:https://arxiv.org/p ...
- Gallery实现图片拖动切换
Gallery中文意思为画廊,通过Gallery能够实现用手指在屏幕上滑动实现图片的拖动.效果如下: 上面,为了学习了解,只用了android默认的Icon图片. 主程序中创建了一个继承自BaseAd ...
- (转) Windows Mobile和Windows CE的区别
转发自 http://blog.sina.com.cn/s/blog_6250bbe60100tsf3.html WinCE Windows CE 是一个可定制的操作系统: Windows Mobil ...