「javacard源码」javacard开发教程

博主:adminadmin 2023-03-20 07:01:10 424

本篇文章给大家谈谈javacard源码,以及javacard开发教程对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。

本文目录一览:

用java来编写一个银行类账户和信用卡类的账户,信用卡类账户继承银行账户,求源码

public class Account {

protected String accId;

protected String name;

protected double money;

public Account (String accId,String name){

this(accId,name,0);

}

public Account (String accId,String name,double money){

this.accId = accId;

this.name = name;

this.money = money;

}

public void saveMoney(double money){

if(money = 0){

System.out.println("存款金额必须大于0");

}

this.money += money;

System.out.println("存款成功");

}

public double getMoney(double money){

if(money = 0){

System.out.println("取款金额必须大于0");

return 0;

}

if(this.money = money){

System.out.println("余额不足,无法取款");

return 0;

}

this.money -= money;

System.out.println("取款成功");

return money;

}

public double getBalance(){

return this.money;

}

protected double getOverdraft(){

return 0;

}

// 实现了equals方法,list比较时才能正确

@Override

public boolean equals(Object obj) {

if(obj == null){

return false;

}

if(this == obj){

return true;

}

if(obj instanceof Account){

return this.accId.equals(((Account)obj).accId);

}

return false;

}

@Override

public String toString() {

return "账户=" + accId + ",名字=" + name + ",余额=" + money;

}

}

public class Bank {

// Account实现了equals方法,list查找时才能正确

private ListAccount usersAccounts;

public Bank() {

usersAccounts = new ArrayListAccount();

}

public void addAccount(Account account) {

if (usersAccounts.contains(account)) {

System.out.println("添加失败,不能添加同样的账户");

return;

}

usersAccounts.add(account);

}

public boolean delAccount(Account account) {

return usersAccounts.remove(account);

}

public boolean delAccount(String accId) {

return delAccount(new Account(accId, null));

}

public boolean existAccount(Account account) {

return usersAccounts.contains(account);

}

public boolean existAccount(String accId) {

return existAccount(new Account(accId, null));

}

public Account getAccount(String accId){

return usersAccounts.get(usersAccounts.indexOf(new Account(accId, null)));

}

public double getAllMoney() {

// 不考虑是否溢出,只是把所有用户余额相加

double result = 0;

for (Account account : usersAccounts) {

result += account.getBalance();

}

return result;

}

public double getAllOverdraft() {

// 不考虑是否溢出

double result = 0;

for (Account account : usersAccounts) {

result += account.getOverdraft();

}

return result;

}

public int getAccountNum() {

return usersAccounts.size();

}

public int getCreditAccountNum() {

int num = 0;

for (Account account : usersAccounts) {

// instanceof 性能没有简单的方法快。

if (account instanceof CreditAccount) {

num++;

}

}

return num;

}

public int getSavingAccountNum() {

int num = 0;

for (Account account : usersAccounts) {

if (account instanceof SavingAccount) {

num++;

}

}

return num;

}

public ListAccount getAllAccount() {

return usersAccounts;

}

}

public class CreditAccount extends Account{

private double overdraft;

public CreditAccount(String accId,String name){

super(accId, name);

this.overdraft = 1000;

}

public CreditAccount(String accId,String name,double money){

this(accId, name,money,1000);

}

public CreditAccount(String accId,String name,double money,double overdraft){

super(accId, name,money);

this.overdraft = overdraft;

}

@Override

public double getMoney(double money) {

if(money = 0){

System.out.println("取款金额必须大于0");

return 0;

}

if(this.money + overdraft = money){

System.out.println("余额不足,无法取款");

return 0;

}

this.money -= money;

System.out.println("取款成功");

return money;

}

@Override

public double getOverdraft(){

return overdraft;

}

@Override

public String toString() {

return "账户=" + accId + ",名字=" + name + ",余额=" + money + ",透支=" + overdraft;

}

}

public class SavingAccount extends Account {

public SavingAccount(String accId, String name) {

super(accId, name);

}

public SavingAccount(String accId, String name, double money) {

super(accId, name, money);

}

@Override

public double getMoney(double money) {

return super.getMoney(money);

}

@Override

public double getOverdraft() {

return super.getOverdraft();

}

}

public class Test {

private static Bank bank = new Bank();

public static void main(String[] args) {

Test.genAccount();

// 开户

Account a1 = new CreditAccount("1", "1", 200, 2000);

Account a2 = new SavingAccount("2", "2", 300);

Account a3 = new SavingAccount("3", "3", 400);

Account a4 = new CreditAccount("4", "4", 500, 2000);

Account a5 = new CreditAccount("4", "5", 600, 2000); // 帐号4重

bank.addAccount(a1);

bank.addAccount(a2);

bank.addAccount(a3);

bank.addAccount(a4);

bank.addAccount(a5);

showNowAccount();

// 销户

bank.delAccount("1");

bank.delAccount("2");

showNowAccount();

// 存款

if(bank.existAccount("3")){

Account acc = bank.getAccount("3");

acc.saveMoney(100);

}

showNowAccount();

// 取款

if(bank.existAccount("3")){

Account acc = bank.getAccount("3");

System.out.println("余额=" + acc.getBalance());

acc.getMoney(100);

System.out.println("余额=" + acc.getBalance());

acc.getMoney(1000);

System.out.println("余额=" + acc.getBalance());

}

if(bank.existAccount("4")){

Account acc = bank.getAccount("4");

System.out.println("余额=" + acc.getBalance());

acc.getMoney(100);

System.out.println("余额=" + acc.getBalance());

acc.getMoney(1000);

System.out.println("余额=" + acc.getBalance());

acc.getMoney(10000);

System.out.println("余额=" + acc.getBalance());

}

System.out.println(bank.getAccountNum());

System.out.println(bank.getAllMoney());

System.out.println(bank.getAllOverdraft());

System.out.println(bank.getCreditAccountNum());

System.out.println(bank.getSavingAccountNum());

}

public static void genAccount(){

String s = "1000 0000 0000 000";

Account a = null;

for(int i = 1; i 11; i ++){

if((i 2) == 0){

a = new CreditAccount(s + String.valueOf(i), "账户" + String.valueOf(i));

} else {

a = new SavingAccount(s + String.valueOf(i), "账户" + String.valueOf(i));

}

bank.addAccount(a);

}

}

public static void showNowAccount(){

for(Account account : bank.getAllAccount()){

System.out.println(account);

}

}

}

java中为什么参数传递不正确

①int pic=null这一句有错误。基本数据类型应该赋值为0,引用数据类型才被赋值为null。

②private card ic1 = new card("你好");这一句。你有对应的构造函数么?系统默认的是无参数的,你自己写的是有四个参数的。

③你的构造函数怎么是void类型?

构造方法是一种特殊的方法,具有以下特点。

(1)构造方法的方法名必须与类名相同。

(2)构造方法没有返回类型,也不能定义为void,在方法名前面不声明方法类型。

(3)构造方法的主要作用是完成对象的初始化工作,它能够把定义对象时的参数传给对象的域。

(4)一个类可以定义多个构造方法,如果在定义类时没有定义构造方法,则编译系统会自动插入一个无参数的默认构造器,这个构造器不执行任何代码。

(5)构造方法可以重载,以参数的个数,类型,顺序。

关于ANDROID自带的联系人CONTACTS源码的分析,求助

The Structure of the Contacts Module

|——/packages/apps/Contacts/src/com/android/contacts

| |——ContactsListActivity.java

| |——ContactsManagementActivity.java

| |——DialtactsActivity.java

| |——ExportVCardActivity.java

| |——GroupsManagementActivity.java

| |——ImportVCardActivity.java

| |——ViewContactActivity.java

| |

| |——model

| | |——ContactsSource.java

| | |——EntityDelta.java

| | |——FallbackSource.java

| | |——Sources.java

| |

| |——ui

| | |——EditContactActiviry.java

| |

| |——widget

| | |——BaseContactEditorView.java

| | |——ContactEditorView.java

| | |——GenericEditorView.java

| | |——KindSectionView.java

| | |——PhotoEditorView.java

| | |——ReadOnlyContactEditorView.java

| |

| |——util

| |——Constants.java

| |——EmptyService.java

|

|——/packages/apps/Contacts/res

| |——drawable

| |——drawable-finger

| |——drawable-hdpi

| |——drawable-hdpi-finger

| |——drawable-mdpi

| |——drawable-mdpi-finger

| |——layout

| |——menu

| |——values

| |——values-zh-rCN

| |——AndroidManifest.xml

|

|——/packages/providers/ContactsProviders/src/com/android/providers/contacts

| |——ContactsDatabaseHelper.java

| |——ContactsProvider.java

| |——ContactsProvider2.java

| |——SQLiteContentProvider.java

|

|——The database address and name

|——data/data/com.android.providers.contacts/databases/contacts2.db

java.lang.NullPointerException

确认你这个错误是在什么阶段报的,如果是启动tomcat的时候,就看在web.xml中定义的servlet或filter中是否有空对象,如果是在访问jsp的时候,看对应jsp的%%中包含的代码时候有空对象

用Java写一个扑克牌类,扑克牌有花色和大小,并且有一个tostring方法,返回扑克牌的信息?

Card[] cards = new Card[54]; // 这是一个数组,是一个普通对象。

Player[] players = new Player[3]; // 这是一个数组,是一个普通对象。

第一行,调用了数组 cards 上索引为 0 的元素的 toString 方法,对应于 Card 类的 toString 方法。

第二行,调用了数组 cards 的 toString 方法,对应于 Card[] 类的 toString 方法,继承自 Object 类。

第三行,调用了 Arrays 类的 toString 方法,传入参数是数组 cards ,具体可查找该方法的源码。

第四行,调用了数组 players 上索引为 0 的元素的 toString 方法,对应于 Player 类的 toString 方法。

第五行,调用了数组 players 的 toString 方法,对应于 Player[] 类的 toString 方法,继承自 Object 类。

第六行,调用了 Arrays 类的 toString 方法,传入参数是数组 players ,具体可查找该方法的源码。

简单说一下 Arrays.toString() ,它返回是由数组内所有元素的字符串化(toString)合并而成的字符串对象。

因此:

1. 不是同一个 toString 方法,任何对象都可调用自身的 toString 方法。

2. 因为 Player 类的 toString 方法内曾调用了“ Arrays.toString(cards) ”。

4. 任何对象都可调用自身的 toString 方法,数组是对象。

5. 数组是对象,一样有对应的类型,其类型一样继承自 Object 类,继承了 toString 方法。

最后,有任何疑问请追问。

在java swing中,怎样提取CardLayout布局当前卡片名?

自己在每次切换card时记录一下。

CardLayout自身是取不到的,看其源码就知道了,根本不记录当前是哪个。

关于javacard源码和javacard开发教程的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。