java編程問題
public class Card {
private String num;
private String name;
private String sex;
private String birth;
public String getBirth() {
return birth;
}
public void setBirth(String birth) {
this.birth = birth;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getNum() {
return num;
}
public void setNum(String num) {
this.num = num;
}
public String getSex() {
return sex;
}
public void setSex(String sex) {
this.sex = sex;
}
}
---------------------------------------
public class TeacherCard extends Card{
private String work;
private String date;
public String getDate() {
return date;
}
public void setDate(String date) {
this.date = date;
}
public String getWork() {
return work;
}
public void setWork(String work) {
this.work = work;
}
}
-----------------------------------------
public class StudentCard {
private String department;
private String time;
private String message;
public String getDepartment() {
return department;
}
public void setDepartment(String department) {
this.department = department;
}
public String getMessage() {
return message;
}
public void setMessage(String message) {
this.message = message;
}
public String getTime() {
return time;
}
public void setTime(String time) {
this.time = time;
}
}
--------------------------------
public abstract class Person {
public abstract double pay();
}
---------------------------------
public class Teacher extends Person implements Pay{
private double basePay;
private double hour;
private TeacherCard teacherCard;
public double pay() {
return this.basePay + this.hour * 30;
}
public double getBasePay() {
return basePay;
}
public void setBasePay(double basePay) {
this.basePay = basePay;
}
public double getHour() {
return hour;
}
public void setHour(double hour) {
this.hour = hour;
}
public TeacherCard getTeacherCard() {
return teacherCard;
}
public void setTeacherCard(TeacherCard teacherCard) {
this.teacherCard = teacherCard;
}
}
----------------------------------
public class CollegeStudent extends Person{
private double outPay;
private StudentCard studentCard;
public double getOutPay() {
return outPay;
}
public void setOutPay(double outPay) {
this.outPay = outPay;
}
public StudentCard getStudentCard() {
return studentCard;
}
public void setStudentCard(StudentCard studentCard) {
this.studentCard = studentCard;
}
public double pay() {
return outPay;
}
}
------------------------------
public interface Pay {
public double pay();
}
-----------------------------
public class Test {
public static void main(String[] args) {
Person pp = new Teacher();
((Teacher) pp).setBasePay(2000);
((Teacher) pp).setHour(3);
System.out.println(pp.pay());
pp = new CollegeStudent();
((CollegeStudent) pp).setOutPay(500);
System.out.println(pp.pay());
}
}
//一共8個類,我測試過了,不懂問我~
⑵ JAVA編程問題
第一個問題比較簡單 告訴你思路吧
兩個用同名方法 參數不同 那就是用到了 函數方法中的重載,
然後 數握雀組的復制 就是先將數組轉成集合 利用 Arrays.asList()方法
然後就可以利用集合的增刪改查操作數組中的元扒游素,可以實現復制的目的,
還有 Collection.toArray()方法 還可以將數組轉回數組,很簡單的
至於0-1000的隨機數 更好說了,,
類Random.nextInt(1)*1000 就OK了
第二個問題的答案 代碼 寫在下面:
import java.util.*;
public class MathWork1 {
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
int x=sc.nextInt();
int y=sc.nextInt();
System.out.println(getYue(x,y));
System.out.println(getBei(x,y));
}
public static int getYue(int x,int y)
{
ArrayList<Integer> al1=new ArrayList<Integer>();
ArrayList<Integer> al2=new ArrayList<Integer>();
for(int i=2;i<=x;i++){
if(x%i==0)
al1.add(i);
}
for(int i=2;i<春皮銷=y;i++){
if(y%i==0)
al2.add(i);
}
al1.retainAll(al2);
if(al1!=null)
return al1.get(al1.size()-1);
else return 1;
}
public static int getBei(int x,int y)
{
ArrayList<Integer> al1=new ArrayList<Integer>();
ArrayList<Integer> al2=new ArrayList<Integer>();
boolean flag=false;
for(int i=2;i<=x;i++){
if(x%i==0)
al1.add(i);
}
for(int i=2;i<=y;i++){
if(y%i==0)
al2.add(i);
}
al1.retainAll(al2);
if(al1.size()==1)
return x*y/al1.get(0);
if(al1!=null)
{
int b=0;
for(int i=0;i<al1.size()-1;i++)
{
int a=al1.get(i+1);
b=al1.get(i);
b*=a;
}
return b;
}
else
return x*y;
}
}
⑶ 關於java編程的問題:一個類調用另一個類中構造方法中所定義的參數。
關於java編程的問題:一個類調用另一個類中構造方法中所定義的參數。 類中構造方法中所定義的參數一般是屬於類的屬性,都是定義為private的,所以無法直接獲取或者操作類的屬性,但是可以通過類的get和set方法,間接獲取和操作類的屬性。以下為set和get方法示範:<pre t="code" l="java">public int getA() {
return a;
}
public void setA(int a) {
this.a = a;
}
C#中結構中構造方法定義的問題
共同點:
都是實例化對象,初始化數據的
默認頌碧構造是說所有的類都從祖先object那繼承了空參的構造方法,你不寫與寫空參構造都存在,而有參數的構造一般是自己寫的,寫就有不寫就沒有,它的作用和空參的一樣,只是它裡面可以有參數,給你個例子來說明吧
有一個類Monitor它有屬性String height;String
width
public Monitor(){}
public Monitor(String height,String width){}
有一個空參的一個有參的構造的方法
在main方法里我做初始化動作
Monitor monitor=new Monitor();
這個構造只是把顯示器這個對象創造出來了,它的屬性就沒有值,也可以再手動給它賦上值
如:monitor.height=100;
monitor.width=200;
用有參的就不一樣了,少很多事
Monitor monitor2=new Monitor("100","200");
在這里我只要把想放進去的參數直接放進去就能給我的屬性賦上值,是不是省了很多事?
這就是它的優勢!
回答完結!
構造函數 是一種特殊的方法 主要用來在創建對象時初始化對象 即為對象成員變數賦初始值
總與new運算符一起使用在創建對象的語句中 特別的一個類可以有多個構造函數 可根據其參數個數的不同或參數類型的不同來區分它們 即構造函數的重載
構造函數與其他方法的區別
1.構造函數御手的命名必須和類名完全相同;而一般方法則不能和類名相同.
2.構造函數的功能主要用於在類的對象創建時定義初始化的狀態.它沒有返回值,也不能用void來修飾.這就保證了它不僅什麼也不用自動返回,而且根本不能有任何選擇.而其他方法都有返回值.即使是void返回值,盡管方法體本身不會自動返回什麼,但仍然可以讓它返回一些東西,而這些東西可能是不安全的.
3.構造函數不能被直接調用,必須通過new運算符在創建對象時才會自動調用,一般方法在程序執行到它的時候被調用.
4.當定義一個類的時候,通常情況下都會顯示該類的構造函數,並在函數中指定初始化的工作也可省略不去Java編譯器會提供一個默認的構造函數.此默認構造函數是不帶參數野拆舉的.而一般方法不存在這一特點
簡單的來說構造函數就是用來創建對象用的,說的專業些叫實例化對象。
定義:
class A
{
public A(){}
}
使用:
A a=new A();在這里,A()就是就是構造函數。
需要注意的一點是,如果類裡面沒有定義構造函數,編譯器也會自動生產一個空構造函數,類的各個成員都賦上默認值。
但是如果在類裡面只定義了一個私有的構造函數的時候,那麼這個類將不能被實例化。
class A
{
string a;
private A() { }這個類不能被實例化
}
如果我們定義了帶參數的構造函數,而沒有定義不帶參數的構造函數,那麼在實例化這個類的對象的時候必須提供參數。
class A
{
string a;
public A(string str) {a=str; }
}
不能這么實例化對象 A a=new A(); 構造函數分為動態構造函數和靜態構造函數。
動態構造函數是類或結構實例化時,為其分配內存空間,完成類或結構當中成員變數的初始化工作。動態構造函數可以重載,即相同構造函數名稱擁有不同類型和數目的多個構造函數。帶參數的構造函數和不帶參數的構造函數沒有本質區別,帶參數的構造函數可以通過傳入的變數控制或者直接初始化其中的成員變數,在構造函數中可以為成員變數初始化默認值。
靜態構造函數不允許攜帶參數,即一個類中只允許有一個靜態構造函數。它在第一次訪問靜態成員或者第一次實例化動態該類的對象之前調用。
關於Java中構造方法的問題
可以,一般都用,單例用private
java中一個類想調用另一個類中定義的面板怎麼調用
將主面板傳遞給一個類,在這個類中將主面板上的將你想要的面板一層一層剝下來,並獲得它,然後在你想要的面板上做操作。
注意:主面板上放的是一個ponent數組
在類中的構造方法修改一變數,怎樣在另一個類構造方法中調用這個變數的值java
public class Test
{
int a = 0;
public Test()
{
a = 1;
}
}
public class Test1
{
Test t;
public Test1()
{
t = new Test();
System.out.println(t.a);
}
public static void main(String args[])
{
new Test1();
}
}
急!Java編程:定義一個類用main方法和構造方法怎麼寫?
public class Dog{
String color;
Dog(String color) {
this.color=color;
}
public String toString() {
return "yellow dog";
}
public static void main() {
Dog d=new Dog("yellow");
System.out.println(d);
}
}
Java中構造方法何時被調用
新建一個對象時被調用。也就是new的時候;
如:
public class A{
int i;
String c;
public A(){ } 無參構造方法
public A(int i,String c)
{
this.i = i;
this.c = c;
}兩參構造方法
public static void main(String[] args){
A a = new A() ;調用了無參構造方法;
A a1 = new A(5,"vieri");調用了兩參構造方法
}
}
java 一個類中怎麼調用另一個類方法中 變數
方法變數是局部變數,沒辦法訪問,但是傳出來!
public class 局部變數 { public static void main(String[] args) { System.out.println("\n\t\t==========局部變數==========\n"); init(); }初始化! private static void init() { int a=new A().show(); System.out.println(a);結果是10 }}測試類!class A{ int show() { int a=10; return a; }}
java類中構造方法可以私有化嗎
您好,構造方法私有化,也就是說,這個類的構造方法是私有的。比如:
public class Person{
private String name;
Private Person(String Name){ 私有的構造方法
this.name = name;
}
}
我們不能在外部實例化這個Person對象的類!
比如:
Public Class TestPerson{
public static void main(String args[]){
Person per = new Person(); 此步是錯誤的!因為你已經將person類的構造方法設置為
private 了
}
}
如果我們想在Person類的外部使用Person類的對象,只能在person類的內部實例化一個Person類的對象,然後調用這個對象,而不能再外部實例化新的對象。
public class Person{
private String name;
Private Person newPerson; Person類唯一的實例化對象
Private Person(String Name){ 私有的構造方法
this.name = name;
}
newperson = new Person("網路知道");
Public Person getInstance(){ 將newperson返回給外部調用處!
return newperson;
}
}
外部的Person類的所有對象只能是對Person內部newperson對象的引用。
外部一千一萬個對象也都只能是對Person內部newperson對象的引用。
因為外部定義的Person類對象沒有實例化能力。這就是單例設計模式,從頭至尾只有一個對象的實例(單例)
⑷ java編程的問題
分類汪祥: 電腦/網路 >> 程序設計 >> 其他編程語言
問題描述:
編寫源文件
class A
{
【代碼1】 聲明一個float型實例變數:a
【代碼2】寬猜 聲明一個float型類變數:b
void setA(float a)
{
【代碼3】 將參數a的值賦值給成員變數a
}
void setB(float b)
{
【代碼4】 將參數b的值賦值給成員變數b
}
float getA()
{
return a;
}
float getB( )
{
return b;
}
void inputA( )
{
System.out.println(a);
}
static void inputB()
{
System.out.println(b);
}
public class sy4_2
{
public static void main(String args[])
{
【代碼5】慎陵型 通過類名操作類變數b,並賦值100
【代碼6】 通過類名調用方法inputB()
A cat=new A();
A dog=new A();
【代碼7】 cat調用方法setA(int a)將cat的成員a的值設置為200
【代碼8】 cat調用方法setB(int b)將cat的成員b的值設置為400
【代碼9】 dog調用方法setA(int a)將dog的成員a的值設置為300
【代碼10】 dog調用方法setB(int b)將dog的成員b的值設置為800
【代碼11】 cat調用inputA()
【代碼12】 cat調用inputB()
【代碼13】 dog調用inputA()
【代碼14】 dog調用inputB()
}
解析:
【代碼1】:float a;
【代碼2】:static float b;
【代碼3】:this.a=a;
【代碼4】:A.b=b;
【代碼5】:A.b=100;
【代碼6】:A.inputB();
【代碼7】:cat.setA(200);
【代碼8】:cat.setB(400);
【代碼9】:dog.setA(300);
【代碼10】:dog.setB(800);
【代碼11】:cat.inputA();
【代碼12】:cat.inputB();
【代碼13】:dog.inputA();
【代碼14】:dog.inputB();
⑸ JAVA編程問題
用下面的API創建一個「等級」類
構造函數
分數
int學生計數,int MINI等級,int Max等級)
這將創建一系列學生成績。每個年級將是一個隨帶中機數從最小年級到最大年級,包括。
方法
1)toSTRIN()
列印這種格式的等級:
等級:[ 78, 58, 76,101, 59, 55,84, 91, 84,67 ]
2)用於分級的存取器和多路選擇器
3)等值法
4)克慧行橘隆方法
5)按升序排序等級的方法
6)按降序排列等級的方法
7)返回最高等級的方法
8)將平均成績返回到小數點的方法。
9)返回中位數的方法。
10)返回模式的方法 。
11)返回一個數組,其中包含F的D的C的B和A的數目
〔7, 2, 1,0, 0〕
12)返回包含每個學生的字母等級的數組的方法
[f,f,d,f,f,c,f,f,d,f]
13)等級到一位小數的標准差
一、
有多少學生?
十
最小年級:
零
最大等級:
一百
等級:[ 59, 1, 70,1, 30, 7,48, 100, 45,83 ]
排序等級:[ 1, 1, 7,30, 45, 48,59, 70, 83,100 ]
反向等級:[ 100, 83, 70,59, 48, 45,30, 7, 1,前團1 ]
最高等級為:100。
平均成績:44.4分
中位數:46
模式〔1〕
字母等級:[ 7, 0, 1,1, 1 ]
[f,f,c,f,f,f,f,a,f,b]
SD:32.9
克隆等級相等
品位變化:
一
新年級:
一百
等級:[ 59, 100, 70,1, 30, 7,48, 100, 45,83 ]
變年級不等於
有多少學生?
磷
有多少學生?
- 1
有多少學生?
零
有多少學生?
十一
最小年級:
一百零五
最大等級:
五十
等級:[ 56, 59, 92,94, 80, 55,103, 101, 78,51, 69 ]
排序等級:[ 51, 55, 56,59, 69, 78,80, 92, 94,101, 103 ]
反向等級:[ 103, 101, 94,92, 80, 78,69, 59, 56,55, 51 ]
最高等級為:103。
平均成績:76.2分
中位數:78
模式〔51, 55, 56、59, 69, 78、80, 92, 94、101, 103〕
字母等級:[ 4, 1, 1,1, 4 ]
[f,f,a,b,f,a,a,c,f,d]
SD:18.5
克隆等級相等
品位變化:
九
新年級:
一百
等級:[ 56, 59, 92,94, 80, 55,103, 101, 78,100, 69 ]
變年級不等於
⑹ JAVA編程問題
public class Account{
private String accountName; //帳戶名肢好
private double amount;//存款余額
//set get 方法省略
//存款方法
//synchronized 同步關鍵詞 防止並發調用此方法
public static synchronized int deposit(Account account,double money)
{
if(account==null)return 0;
try{
double balance=account.getAmount()+money;
account.setAmount(balance);
}catch(Exception e)
{
System.out.println("出錯信息:「+e.getMessage());
return 0;
}
return 1;
}
//取款方法
//synchronized 同步關鍵詞 防止並發調用此方法
public static synchronized int withdraw(Account account,double money)
{
if(account==null)return 0;
try{
if(account.getAmount()>=money)
account.setAmount(account.getAmount()-money);
return 1;
}catch(Exception e)
{
System.out.println("出錯信息:「+e.getMessage());
return 0;
}
}
}
//此類考慮了同步問題,但我覺得應該把存款,取款另起一個類實現散殲:帳戶管理類,歷掘鉛此類管理所有的存,取款交易。
⑺ JAVA編程問題
不知道我對你的這段程序的理解是否正確,money為狀態控制的變數,隨著Money的變化AB線程的狀瞎吵態發生變化。
想要達到這樣的效果,那麼你對money的操作就不能和AB在同個線程中,應該要另起一個線程專門來控制money的變化。消叢
下面的代碼希望對你有幫助
class Runner implements Runnable {
public int money = 200;
public boolean flagA = true;
public boolean flagB = true;
public Thread A = new Thread(this, "A");
public Thread B = new Thread(this, "B");
public Runner() {
new Thread(this, "money").start();
A.start();
B.start();
}
public void run() {
String name = Thread.currentThread().getName();
while (name.equals("A") ? flagA : flagB) {
if (name.equals("A")) {
if (money >= 100) {
System.out.print("當前的money值為" + money);
System.out.println("當前運行磨橋侍的線程" + name);
} else {
flagA = false;
}
try {
Thread.sleep(100);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
if (name.equals("B")) {
if (money >= 60) {
System.out.print("當前的money值為" + money);
System.out.println("當前運行的線程" + name);
} else {
flagB = false;
}
try {
Thread.sleep(100);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
if (name.equals("money")) {
try {
Thread.sleep(100);
} catch (InterruptedException e) {
e.printStackTrace();
}
money -= 10;
}
}
}
}
⑻ java編程問題
class Person {
private String name;
private String sex;
private int age;
public Person() {
}
public Person(String name, String sex, int age) {
this.name = name;
this.sex = sex;
this.age = age;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getSex() {
return sex;
}
public void setSex(String sex) {
this.sex = sex;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public void show() {
System.out.println("父類的name屬性的值為:"+name);
System.out.println("父類的sex屬性的值御吵敬為:"+sex);
System.out.println("父類的age屬性的值為:"+age);
}
}
class Student extends Person {
private String specialty;
private String banji;
private String studentId;
public Student(){
}
public Student(String name, String sex, int age,String specialty,String banji,String studentId){
super(name, sex, age);
this.specialty = specialty;
this.banji = banji;
this.studentId = studentId;
}
public String getSpecialty() {
return specialty;
}
public void setSpecialty(String specialty) {
this.specialty = specialty;
}
public String getBanji() {
return banji;
}
public void setBanji(String banji) {
this.banji = banji;
}
public String getStudentId() {
return studentId;
}
public void setStudentId(String studentId) {
this.studentId = studentId;
}
public void show() {
super.show();
System.out.println("子類的specialty屬性的值為:"+specialty);
System.out.println("子類鎮慎的banji屬性的值為:"+banji);
System.out.println("子碰碼類的studentId屬性的值為:"+studentId);
}
}
public class TestStudent {
public static void main(String[] args) {
Student student = new Student();
student.setName("小春");
student.setSex("女");
student.setAge(28);
student.setSpecialty("計算機");
student.setBanji("2班");
student.setStudentId("090223");
student.show();
}
}
⑼ java編程問題
以下代碼在MyEclipse 6.0測試通過
GameDriver類
package com.ts;
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;
public class GameDriver {
/**
* @param args
* 實現跳躍規則找到最小的和的小游戲
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner k = new Scanner(System.in); //定義輸入流
System.out.println("This propram plays the 'Jump It' game. ");
List<Integer>衫敏 board=new ArrayList<Integer>();//聲明一個動態泛型數組
board.add(0);//默認第一個元素為0
///該循環實現連續提示用戶輸入數值並填充動態數組board
for (int i = 0; i <board.size()+1; i++)
{
System.out.print("Enter a positive number or 0 to stop?");
//沒有對數據合法性進行驗證
board.add(k.nextInt());
if(board.get(board.size()-1)==0)//判掘嘩斷動態數組最後一位是否為0
{
break;
}
}
System.out.print("This is the board: ");
//該循環實現遍歷動態數組
for(int i=0;i<board.size()-1;i++)
{
System.out.print(board.get(i)+" ");
}
//列印換行
System.out.println("");
System.out.println("The lowest cost is: "+Game.cheapWay(board,0));
}
}
Game類
package com.ts;
import java.util.List;
public class Game {
/**
* @param args
* 該類實現游戲規則
*/
public static int cheapWay(List<Integer> list, int n)
{
if(list.size() - 1 == n)
return list.get(n);
else if(list.size() - 2 == n)
return list.get(n) + list.get(list.size() - 1);
else if(cheapWay(list, n + 1) <判塌行 cheapWay(list, n + 2))
return list.get(n) + cheapWay(list, n + 1);
else
return list.get(n) + cheapWay(list, n + 2);
}
}
--------------------------------------------------------
下次有問題發我QQ 121354340 大漠孤煙
星期一到星期五白天都在 備注 網路知道
⑽ Java編程問題
包名改成你自己的
packagetest;
publicclassStudent{
privateintno;
privateStringname;
privateintage;
privateintcount;
publicStudent(intno,Stringname,intage){
this.no=no;
this.name=name;
this.age=age;
count++;
}
publicintgetNo(){
returnno;
}
publicvoidsetNo(intno){
this.no=no;
}
publicStringgetName(){
returnname;
}
publicvoidsetName(Stringname){
this.name=name;
}
publicintgetAge(){
returnage;
}
publicvoidsetAge(intage){
基模this.age=age;
}
publicintgetCount(){
returncount;
}
publicvoidsetCount(intcount){
this.count=count;
}
@Override
publicStringtoString(){
return"學號:"+no+"姓名:"+name+"年齡:"+age;
}
publicstaticvoidmain(String[]args){
核正Studentstu=newStudent(1,"zhangsan",22);
System.out.println(stu.toString());
stu.setName("lisi");
stu.setAge(25);
改鋒悔System.out.println(stu.toString());
}
}