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月... 不感慨了,如下为一园友需要的正则工具类,直接上码: ...
随机推荐
- IIS 组成
HTTP.sys http.sys 侦听来自网络的 HTTP 请求,将它们传递到 IIS 并返回响应. 它是一种可以从命令行停止和启动的服务. "NET STOP HTT ...
- DVWA系列精品教程:2、命令注入
文章更新于:2020-04-11 注:如何搭建环境参见:搭建DVWA Web渗透测试靶场 DVWA之命令注入漏洞 一.介绍 1.1.官方说明 1.2.总结 二.命令注入实践 2.1.安全级别:LOW ...
- problems
exceptionUnable to connect to userservice.shanmaohuwai.com:80 . Error #0: stream_socket_client(): un ...
- 2019-07-31【机器学习】无监督学习之降维NMF算法 (人脸特征提取)
代码 from numpy.random import RandomState #加载RandomState用于创建随机种子 import matplotlib.pyplot as plt from ...
- 【Java】关键字 和 保留字
Java的关键字[Keyword]和 保留字[Reserved word] 官方描述: https://docs.oracle.com/javase/tutorial/java/nutsandbolt ...
- IE各版本CSS Hack(兼容性处理)语法速查表
为了兼容IE各个版本,需要在CSS中添加额外的代码,比如以前常用的_width.之所以工作,是因为浏览器会忽略不能解析的样式规则,因此举个例子来说,把_width写在width下面,对于非IE浏览器会 ...
- Oracle NULL值
NULL值,用来描述记录中没有定义内容的字段值.在Oracle中,判断某个条件的值时,返回值可能是TRUE.FALSE或UNKNOWN. 如果查询一个列的值是否等于20,而该列的值为NULL,那么就是 ...
- 提高万恶的KPI,切忌要避开这六个低效的编程习惯
作者:程序员小跃 Slogan:当你的才华还无法撑起你的野心时,那应该静下心来好好学习 上次的翻译,引起了很大的反响,大家都想知道自己和高级工程师的差距,看了我的文章,是不是都在默默地做着比较呢?如果 ...
- docx4j docx转html
不好用,转完问题挺多,百度还找不到资料头疼.public static void docxToHtml(String fileUrl) throws Exception { String path = ...
- 基于 HTML5 WebGL 的高炉炼铁厂可视化系统
前言 在当今 工业4.0 新时代的推动下,不仅迎来了 工业互联网 的发展,还开启了 5G 时代的新次元.而伴随着带宽的提升,网络信息飞速发展,能源管控上与实时预警在工业互联网中也占着举足轻 ...