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月... 不感慨了,如下为一园友需要的正则工具类,直接上码: ...
随机推荐
- VBScript - 弹出“文件选择对话框”方法大全!
本文记录,VBScript 中,各种打开 "文件选择对话框" 的方法. 实现方法-1 (mshta.exe): 首先,我们要实现的就是,弹出上面的这个"文件选择对话框&q ...
- Java第二天,类的概念,属性和方法的使用
上文中我们已近说到过了,Java是一种面向对象的编程语言,对象是用类来创建的,就比如世界上有无数个父亲,但是他们都有一个共同的属性--男人.也就是说某个父亲这个对象属于男人这个类.类是Java必不可少 ...
- Dubbo 路由机制的实现
Dubbo 路由机制是在服务间的调用时,通过将服务提供者按照设定的路由规则来决定调用哪一个具体的服务. 路由服务结构 Dubbo 实现路由都是通过实现 RouterFactory 接口.当前版本 du ...
- Java并发之显式锁和隐式锁的区别
Java并发之显式锁和隐式锁的区别 在面试的过程中有可能会问到:在Java并发编程中,锁有两种实现:使用隐式锁和使用显示锁分别是什么?两者的区别是什么?所谓的显式锁和隐式锁的区别也就是说说Synchr ...
- "二号标题"组件:<h2> —— 快应用组件库H-UI
 <import name="h2" src="../Common/ui/h-ui/text/c_h2"></import> < ...
- Lua 5.3 -- SOL2.0 用户指南 【2】
系列教程指南[1] 注意 在你学习了sol的基础知识之后,建议你如果认为某些东西可以运行,你应该尝试一下.它可能会运行! 以下所有代码均可在sol2教程示例中找到. 断言/先决条件 The imple ...
- CSS盒模型属性详细介绍
一.概述 CSS盒模型是定义元素周围的间隔.尺寸.外边距.边框以及文本内容和边框之间内边距的一组属性的集合. 示例代码: <!DOCTYPE html> <html lang=&qu ...
- webWMS开发过程记录(一)- 软件开发的流程
前言:计划开发一个webWMS,并将开发过程比较完整的记录下来.希望可以完成这个目标 软件开发的流程: 1. 了解该项目的相关概念. 了解所要开发的软件属于什么产品.该产品的基本定义是什么?基本功能模 ...
- 基于 Redis 的订阅与发布
Github 仓库 demo-redis-subscribe 创建项目 $ composer create hyperf/biz-skeleton demo-redis-subscribe dev-m ...
- stand up meeting 1/7/2016
part 组员 今日工作 工作耗时/h 明日计划 工作耗时/h UI 冯晓云 调研下滑条的存在问题,尝试替换方案 6 全面实行替换 ...