
正文
Java中逢七过代码 python逢7过代码
提示:扫一扫查出行【扫一扫了解最新限行尾号】
复制提示
采用Java语言面向对象思想,编写程序, 七个要求7个代码
public class Person {
//(1) 设计一个类 人员,包含三个成员变量:姓名、年龄、性别。
private String name;
private int age;
private String sex;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public String getSex() {
return sex;
}
public void setSex(String sex) {
this.sex = sex;
}
}
//(2) 设计员工和顾客两个类为 人员类的子类,员工类包含一个成员变量:职称级别;顾客包含一个成员变量:账户余额。
class worker extends Person{
private String Title_Level;
public String getTitle_Level() {
return Title_Level;
}
public void setTitle_Level(String title_Level) {
Title_Level = title_Level;
}
}
class Customer extends Person{
private int Account_balance;
public int getAccount_balance() {
return Account_balance;
}
public void setAccount_balance(int account_balance) {
Account_balance = account_balance;
}
}
//(3) 设计一个类 取款机包含两个成员方法:取款,查询账户。
interface ATM{
void Teller(Customer cus);
void Checkaccount(Customer cus);
}
//4) 实现取款机的取款方法,
//当顾客来取钱但是账户余额不足时抛出异常“余额不足”并显示,
//无论取款是否发生异常,最终取款方法需要执行“退卡”操作。
class ATMimpl implements ATM{
public void Checkaccount(Customer cus) {
}
public void Teller(Customer cus) {
}
}
相关问答
Q1: c++语言中逢七必过怎么写,就是一百以内的数中,凡是含有7的或者是七的倍数都过去
//整的程序代码:
#incoude iostream
using namespace std;
int main()
{
for (int i=1; i=100; i++)
{
if(i%7!=0)
cout i endl;
}
return 0;
}
/*代码纯手打,可能有错,自己检查一下吧。*/
Q2: java代码中如何将BigDecimal类型的0E-7转成0.0000000?
在Java中,可以使用BigDecimal类的stripTrailingZeros方法来实现这一转换。例如:
BigDecimal bd = new BigDecimal("0E-7");
bd = bd.stripTrailingZeros();
System.out.println(bd); // 输出:0.0000000
另外,如果希望输出的字符串显示小数点后面的零,可以使用BigDecimal类的toPlainString方法来实现,如下所示:
BigDecimal bd = new BigDecimal("0E-7");
System.out.println(bd.toPlainString()); // 输出:0.0000000
在这两种情况下,输出的字符串都是完整的,表示小数点后面的所有零。
Q3: Java学习中代码优化的方法有哪些?
每个人都说代码是程序员手中的一把雕刻刀,是对他们产品轮廓和细节的打磨。每个程序员在代码优化方面需要做的是,即使是每天处理代码的程序员也有很多关于他们编写代码的问题,所以优化很重要。下面昌平北京IT培训为大家介绍代码优化的方法。
1、尽量重用目标
特别是,使用代表字符串收敛的String目标应该使用StringBuilder/StringBuffer。因为Java虚拟机不仅要花时间生成目标,而且可能还需要花时间检索和删除这些目标,所以昌平计算机学院发现生成太多目标会对程序的功能产生重大影响。
2、可以运用局部变量
调用方法时传递的参数和调用中创建的临时变量保存在堆栈中的速度更快。其他变量,如静态变量、实例变量等等,在堆中创建,速度较慢。此外,北京北大青鸟发现在堆栈中创建的变量,方法的操作结束,当这些内容都消失了,就不需要额定废物回收。
3、及时封闭流
Java的程序编写过程中,数据库连接,I/O流操作必须谨慎,应用结束后,应该及时关闭发布资源。因为昌平java培训发现这些大目标的运行会造成大系统支出,稍有不慎就会导致严重的结果。
Q4: java怎么逢七抽一啊
这个问题是很经典的编程问题,叫约瑟夫环问题,参考程序如下:
//YueSeFu.java
public class YueSeFu {
public static void main(String[] args)
{
final int n=13,s=1,m=5;//n为总人数,从第1个人开始报数,报数到m的出圈
int[] p=new int[n];//数组p用于标记已出圈的人
int[] q=new int[n];//数组q存放出队的顺序
int i,j,k,N=0;
k=s-2;//k从1开始数出圈人的下标
for(i=1;i=n;i++)
{
for(j=1;j=m;j++)//从1到m报数,计算出圈人的下标k
{
if(k==n-1)//当出圈人的下标达到末尾时
{
k=0;//出圈人的下标从0开始
}
else
k++;//否则下标+1
if(p[k]==1)//若平p[k]=1,说明下标为k的人已出圈
{
j--;//由于让过已出圈的人,所以j要-1,以保证每次数过m个人
}
}
p[k]=1;//将下标为k的数组元素置1,表示出圈
q[N++]=k+1;//将下标为k的人的编号k+1,存入数组元素q[N]中
}
System.out.println("出圈顺序为:");
for(i=0;in;i++)
{
System.out.print(q[i]+" ");
}
}
}
Q5: java代码解析
一楼的说的够全面了,不过稍有误解.
再来表示抱歉,我对编程语言中的中文名词非常不了解,所以如果以下的回复对你的阅读或者理解造成困难,请见谅.
1.首先,要明白这个问题的答案,需要了解call (pass) by value 和 call (pass) by reference 的区别.简单来说:
call by value通常是复制这个parameter的值去另外一块内存里,然后传给function, 所以在method/function里边对这个变量的所有变更,实际上都是对复制过来的镜像进行操作,不会对原本的variable有任何影响.
call by reference是将parameter的reference传给function,简单点理解就是直接把variable传给function.所以说这个variable的值是可以被function改变的.这个用法在c/c++中非常常见,用法是variable_name.
2.再来,在Java里边,你可以很简单的理解为: Java中只有call by value, 也就是说,所以所有传给function的parameter本身都不会被改变. (这是最简单直白的理解,当然也有另一种常从sun的人那边听到的说法:Java是call by value + call by reference by value)
3.那么现在的问题就是为什么第二个结果是2了. 首先说一下sun官方的解释: 对于reference type在作为parameter/argument的时候,也是call by value, 但是在你拥有足够权限时(比方说那个变量是public的, 不是final的等等各种符合的情况),可以修改这个object中fields的值(也就是属于这个object(严谨点讲是an instance of the object) 内部的变量, 在你的例子中, ko 里边的 a 就是一个field, 所以update(ko)会使ko.a变成2).
4.如果你是一个有过c/c++学习经验的人或者你以上的解释很难理解,以下这种说法或许更适合你 (当然了,这只是大多包括我在内有c经验的人的一种理解方式)
这里可以引入一个新的概念,pointer. 这是一种比较特殊的变量,它内部所储存的东西,其实只是另外一个变量的内存地址. 如果对内存没有概念,你可以把它简单理解为是风筝的线轴,虽然看它本身看不出什么端倪,但是顺着摸过去总会找到风筝,看到它是什么样子. 以pointer方式理解Java的人,通常会说: Type variable = new Type(); 这个过程中,最后生成的这个variable其实就是一个pointer,而不是instance本身.
在Java中, 有c/c++经验的人通常认为Java是call by value.同时,当一个变量用在储存reference type的时候,实际上储存的是它的pointer,这也一样可以解释为什么ko.a会有2这个结果,因为虽然pointer被传到function里边时,本身是call by value,无法被改变.但这并不影响function本身对这个pointer指向的object的内容做任何改变. 当然,再次声明,这只是一种帮助有c/c++经验的人理解的方法. Sun本身严正声明Java里边没有pointer这个东西的存在.
5. 再来解释一下为什么说楼上所说的(或者说楼上引用的)理解略有偏差.
引用"我们上面刚学习了JAVA的数据类型,则有:值类型就是按值传递的,而引用类型是按引用传递的" 这句话很明显的有两点错误. 第一点,如果我上面所说的,Java是没有call by reference的.
第二点,暂且假设Java里边是有call by reference的, 这句话依然不成立.
Java中的变量有两种类型: primitive types 和 reference type.
primitive type包括byte, short, int, long, char, boolean, float和double.
而这8种之外的所有的,都是reference type.
下面是一段对你的贴上来的code的一点延伸,希望可以帮助你更好的理解Java中的argument / parameter到底是如何运作的.
public class Test {
public static void main(String[] args) {
int a = 1;
Koo koo = new Koo();
Object o = new Integer(1);
Koo newKoo = new Koo();
update(a);
update(koo);
update(o);
update(newKoo);
newUpdate(newKoo);
System.out.println(a);
System.out.println(koo.a);
System.out.println(o);
System.out.println(newKoo.a);
}
static void update(int a) {
a++;
}
static void update(Koo koo) {
koo.a++;
}
static void update(Object o) {
o = (int) (Integer.parseInt(o.toString()) + 1);
}
static void newUpdate(Koo koo) {
koo = new Koo();
}
}
class Koo {
int a = 1;
}
/*
o = (int) (Integer.parseInt(o.toString()) + 1); 这一行中的(int)纯粹是多余的,是否有这个casting对code本身没有任何影响. 如果你高兴也可以用
o = new Integer(Integer.parseInt(o.toString()) + 1);
或者干脆
o = Integer.parseInt(o.toString()) + 1;
*/
以上这些code运行之后会得到1 2 1 2的结果. 后面两个结果可以很好的说明, 即使对objects (reference type variables) 来看, Java所应用的也并不是call by reference. 否则的话,以上code运行结果应该是1 2 2 1
希望你可以真正理解这个新的例子中,产生1212这个结果的原因,从而对Java中的arguments有一个系统全面的认识.
图片是相关资料的链接,知道里貌似不能加网址
关于Java中逢七过代码和python逢7过代码的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。







