|
what do you want to do with this?
|
|
|
|
|
Well the code is self explainatory.
What I am really concerned about the block of code after statement termination character ';' - can this block of code be written the same way in C# or can be written in a function instead.
|
|
|
|
|
Hi guys I need some one who really worked in series project to explain some concept
my teacher making a big story about private variable.
people always says we used private to make java hide the containing
.
package Student;
public class Student {
public static void main(String[] args) {
information x = new information();
x.ID();
{
package Student ;
public class information{
private int ID=0;
private string name="";
private int GPA =0;
}
I know I can't change ID without using set and get but this my question
if I will use set and get I can make my life easy just make ID like this
public int ID=0;
instead using set and get method.
my teacher said to protect the information from user !!!!!!!!
I don't why he said that ?
because user will see message like enter number and then the code will do calculation
like :
Please enter two Numbers :
5
4
The result : 9
So I still I don't know why I should use private which force me to use set and get .
please guys help me and remember I know this stupid question but I ask because I know how to use private but I don't why ?
before I just write this question I read and watch online youtube but there nothing I get
I'm a person who has only small memory takes only logical things and throw illogical thing.
|
|
|
|
|
See this description[^].
One of these days I'm going to think of a really clever signature.
|
|
|
|
|
You have to protect variables, because you depend in them.
Limiting the access to the getter and setter, you can depend on the variables to be used in the context you expect to have them.
Also, you can validate the value on the setter, which gives you the chance to to reject the value in case it is not ok (throw Exception). This protects your code from failing.
As a 3. argument: The same variable can be part of different methods/classes. but each name of a variable has to be unique, otherwise the code will fail.
So one limits down the range, where the variable exists as much as possible. therefor, one can use the same name again - not that one does it constantly, but one has the chance to.
And last but not least: it's simply good design/style to do so.
The usage of static should also be limited as much as possible.
There are some occasions where it is needed - but that should be used as less as possible.
Please read about the "encapsulation" - the link, that Richard posted. And please do some more research.
This is a basic of java development. One can't go without this, so you need to understand it.
|
|
|
|
|
guys I really grateful for your answers
|
|
|
|
|
I want to write product objects per consumer to a file based on region. This is the method:
protected static void writeRecordsToFiles(ProductConsumer[] consumers) {
try {
BufferedWriter[] bufferedWriters = {
new BufferedWriter(new FileWriter("data/US_Timezones/central.txt")),
new BufferedWriter(new FileWriter("data/US_Timezones/eastern.txt")),
new BufferedWriter(new FileWriter("data/US_Timezones/mountain.txt")),
new BufferedWriter(new FileWriter("data/US_Timezones/pacific.txt"))
};
for (int i = 0; i < bufferedWriters.length; i++) {
bufferedWriters[i].write(consumers[i].toString());
bufferedWriters[i].newLine();
bufferedWriters[i].flush();
for (ProductProducer record : consumers[i].msgList.get()) {
bufferedWriters[i].write(record.toString());
bufferedWriters[i].newLine();
bufferedWriters[i].flush();
}
bufferedWriters[i].close();
}
} catch (IOException ex) {
Logger.getLogger(Mp3Like1.class.getName()).log(Level.SEVERE, null, ex);
}
}
For this line:
for (ProductProducer record : consumers[i].msgList.get()) {
I get the error messages in Netbeans:
msgList has protected access in ProductConsumer
method get in interface List cannot be applied to given types;
required: int
found: no arguments
reason: actual and formal argument lists differ in length
where E is a type-variable:
E extends Object declared in interface List
Here is the code from the whole class, and from the rest of the classes. Thank you in advance:
package mp3like1;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.logging.Level;
import java.util.logging.Logger;
import parallelpatterns.ProductConsumer;
import parallelpatterns.ProductProducer;
public class Mp3Like1 {
public static void main(String[] args) {
long simStartTime = System.currentTimeMillis();
System.out.println("Simulation started at 0 secs: " + simStartTime + "\n");
ProductProducer producerOne = new ProductProducer("alaskan");
new Thread(producerOne).start();
ProductProducer producerTwo = new ProductProducer("hawaian");
new Thread(producerTwo).start();
ProductConsumer consumer1 = new ProductConsumer("eastern", producerOne, producerTwo, 500L);
Thread c1 = new Thread(consumer1);
c1.setDaemon(true);
c1.start();
ProductConsumer consumer2 = new ProductConsumer("central", producerOne, producerTwo, 600L);
Thread c2 = new Thread(consumer2);
c2.setDaemon(true);
c2.start();
ProductConsumer consumer3 = new ProductConsumer("mountain", producerOne, producerTwo, 700L);
Thread c3 = new Thread(consumer3);
c3.setDaemon(true);
c3.start();
ProductConsumer consumer4 = new ProductConsumer("pacific", producerOne, producerTwo, 800L);
Thread c4 = new Thread(consumer4);
c4.setDaemon(true);
c4.start();
BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
try {
System.out.println("Press a key to exit...");
in.read();
System.out.println("\nExiting....\n");
in.close();
System.out.println("\nTotal simulation runtime was: " + (System.currentTimeMillis() - simStartTime) * 1000.0 + " secs.");
} catch (IOException ioe) {
ioe.printStackTrace();
} finally {
System.out.println("\nEastern Timezone's messages: \n" + consumer1 + "\n");
System.out.println("\nCentral Timezone's messages: \n" + consumer2 + "\n");
System.out.println("\nMountain Timezone's messages: \n" + consumer3 + "\n");
System.out.println("\nPacific Timezone's messages: \n" + consumer4 + "\n");
System.exit(0);
}
}
protected static void writeRecordsToFiles(ProductConsumer[] consumers) {
try {
BufferedWriter[] bufferedWriters = {
new BufferedWriter(new FileWriter("data/US_Timezones/central.txt")),
new BufferedWriter(new FileWriter("data/US_Timezones/eastern.txt")),
new BufferedWriter(new FileWriter("data/US_Timezones/mountain.txt")),
new BufferedWriter(new FileWriter("data/US_Timezones/pacific.txt"))
};
for (int i = 0; i < bufferedWriters.length; i++) {
bufferedWriters[i].write(consumers[i].toString());
bufferedWriters[i].newLine();
bufferedWriters[i].flush();
for (ProductProducer record : consumers[i].msgList.get()) {
bufferedWriters[i].write(record.toString());
bufferedWriters[i].newLine();
bufferedWriters[i].flush();
}
bufferedWriters[i].close();
}
} catch (IOException ex) {
Logger.getLogger(Mp3Like1.class.getName()).log(Level.SEVERE, null, ex);
}
}
}
package domain;
public class Product {
private String ProductID;
private String ProductName;
private String ProductDescription;
private Double weight;
private Double cost;
public Product() {
}
public Product(String prd) {
}
public String getProductID() {
return ProductID;
}
public void setProductID(String ProductID) {
this.ProductID = ProductID;
}
public String getProductName() {
return ProductName;
}
public void setProductName(String ProductName) {
this.ProductName = ProductName;
}
public String getProductDescription() {
return ProductDescription;
}
public void setProductDescription(String ProductDescription) {
this.ProductDescription = ProductDescription;
}
public Double getWeight() {
return weight;
}
public void setWeight(Double weight) {
this.weight = weight;
}
public Double getCost() {
return cost;
}
public void setCost(Double cost) {
this.cost = cost;
}
public Product(String ProductID, String ProductName, String ProductDescription, Double weight, Double cost) {
this.ProductID = ProductID;
this.ProductName = ProductName;
this.ProductDescription = ProductDescription;
this.weight = weight;
this.cost = cost;
}
@Override
public String toString() {
return "Product{" + "ProductID=" + ProductID + ", ProductName=" + ProductName + ", ProductDescription=" + ProductDescription + ", weight=" + weight + ", cost=" + cost + '}';
}
}
package domain;
import java.util.Date;
public class ProductMessage {
private Product product;
private Date timeStamp;
private String region;
public ProductMessage(Product product, Date timeStamp, String region) {
this.product = product;
this.timeStamp = timeStamp;
this.region = region;
}
public ProductMessage() {}
public Product getProduct() {
return product;
}
public void setProduct(Product product) {
this.product = product;
}
public Date getTimeStamp() {
return timeStamp;
}
public void setTimeStamp(Date timeStamp) {
this.timeStamp = timeStamp;
}
public String getRegion() {
return region;
}
public void setRegion(String region) {
this.region = region;
}
@Override
public String toString() {
return "ProductMessage{" + "product=" + product + ", timeStamp=" + timeStamp + ", region=" + region + '}';
}
}
package parallelpatterns;
import domain.ProductMessage;
import java.util.ArrayList;
import java.util.List;
public class ProductConsumer implements Runnable {
private ProductProducer producerOne;
private ProductProducer producerTwo;
private String region;
private long sleepInterval;
protected List<ProductMessage> msgList;
public ProductConsumer(String region, ProductProducer producerOne,
ProductProducer producerTwo, long sleepInterval) {
this.producerOne = producerOne;
this.producerTwo = producerTwo;
this.region = region;
this.sleepInterval = sleepInterval;
msgList = new ArrayList<ProductMessage>();
}
public void run() {
while (true) {
checkProducerForMessage(producerOne);
checkProducerForMessage(producerTwo);
}
}
protected synchronized void checkProducerForMessage(ProductProducer prd) {
ProductMessage message = prd.getMessage(region);
if (message != null) {
msgList.add(message);
System.out.println("Consumer: " + region + " region got message: \n" +
message + "\nof total " + prd.getListSize() + " messages...");
}
try {
Thread.sleep(sleepInterval);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
@Override
public String toString() {
String messageString = "";
for (ProductMessage m : msgList) {
messageString += m + "\n";
}
return messageString;
}
}
package parallelpatterns;
import domain.Product;
import domain.ProductMessage;
import java.util.Date;
import java.util.Random;
public class ProductProducer implements Runnable {
private String prd;
static final int MAXQUEUE = 5;
private java.util.List<ProductMessage> messageList;
public ProductProducer(String prd){
this.prd = prd;
messageList = new java.util.ArrayList<ProductMessage>();
}
@Override
public void run() {
while (true) {
putMessage();
try {
Thread.sleep(1000L);
} catch (InterruptedException e) {
}
}
}
private synchronized void putMessage() {
while (messageList.size() >= MAXQUEUE) {
try {
wait(500L);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
Random rnd = new Random();
Product[] products = {
new Product("5A2C", "Widget", "The famous widget device (just a few are still available).",25.57, 99.99) ,
new Product("7F5A", "WidgetPlusPlus", "Highly improved version of original Widget product.", 19.67, 149.49)
};
rnd = new Random();
Product rndPrd = products[rnd.nextInt(products.length)];
String[] regions = {"eastern", "central", "mountain", "pacific" };
String rndReg = regions[rnd.nextInt(regions.length)];
messageList.add(new ProductMessage(rndPrd, new Date(),rndReg));
System.out.println("Producer: " + prd + " Queue: " + messageList.size() + " total at " + new Date());
System.out.println("Producer: " + prd + " Queue: " + messageList.get(0).getRegion());
notify();
}
public synchronized ProductMessage getMessage(String region) {
ProductMessage message = null;
while (messageList.size() == 0) {
try {
notify();
wait();
} catch (InterruptedException e) {
e.printStackTrace();
}
}
System.out.println("Consumer " + region + " checking region value from top element of queue: " + messageList.get(0).getRegion());
if (region.equals(messageList.get(0).getRegion())) {
return messageList.remove(0);
}
notify();
return message;
}
public int getListSize() {
return messageList.size();
}
}
|
|
|
|
|
The ProductConsumer class is in a different package from your main program so its protected member is not accessible.
One of these days I'm going to think of a really clever signature.
|
|
|
|
|
|
Thanks, I am not sure why OP needs three different packages. I see also that you have answered this with a lot of useful detail, in Q&A.
One of these days I'm going to think of a really clever signature.
|
|
|
|
|
Well, it's good to use different packages though.
Some code organization is welcome. But yes, that makes more sense when more classes are in there.
But hey, he's developing his skills. Looks good.
|
|
|
|
|
TorstenH. wrote: Well, it's good to use different packages though. True, but only if the design calls for it.
TorstenH. wrote: he's developing his skills. And that's the important bit.
One of these days I'm going to think of a really clever signature.
|
|
|
|
|
I placed the method
public static void writeRecordsToFiles(ProductConsumer[] consumers) in the ProductConsumer class, but Netbeans gave me the same error message, "cannot find symbol: method messageList(), location: class ProductConsumer," so I need to create a method messageList() in ProductConsumer. Thanks.
modified 22-Dec-12 19:21pm.
|
|
|
|
|
Firstly you need to understand the product you are using: Netbeans does not produce these error messages, they come from the Java compiler; this is a Java program error. Secondly you need to look at your use of the package keyword, as I mentioned in my earlier message. And thirdly, go back to the responses that Torsten.H has given you about your use of messageList() .
One of these days I'm going to think of a really clever signature.
|
|
|
|
|
|
Anyone plzzz xplain me or provide me wid any good ebooks on d topic "Recursion of methods in Java".....help help!!
Siddhartha
|
|
|
|
|
Recursion is the same in all languages, Google will find lots of references.
One of these days I'm going to think of a really clever signature.
|
|
|
|
|
Hello there,
There are multiple resources available. In my own opinion, I felt that the following was written very well and helped me understand the concept even better: Thinking Recursively with Java by Eric S. Roberts
(http://www-cs-faculty.stanford.edu/~eroberts/books/ThinkingRecursively/
The text features the following:
A thorough and clear introduction to the difficult concept of recursion
Uses a broad range of examples to illustrate the principles used in recursion and how to apply them to programming
Features imaginative examples along with various exercises and their solutions.
Best of Luck!
Happy Reading!
With Kind Regards,
April
Comm100 - Leading Live Chat Software Provider
modified 27-May-14 8:38am.
|
|
|
|
|
|
I've got this exception after running my project
Really don't know what to do!
SQLException: No suitable driver found for jdbc:derby://localhost:1527
I've add derbyclient.jar to Library.but I didn't get any different result.I also don't want to create a new database.
I wasn't able to attach it here but here are two links to download project files.
source:
http://bia2internet.com/dl/java/java.zip
database:
http://bia2internet.com/dl/java/db.zip
|
|
|
|
|
You might have to add the derbyclient.jar to the build, so it can be accessed at runtime.
to create a new database you need to tell derby so:
jdbc:derby://localhost:1527/dbname;create=true
Please also check out the Derby Documentation and Quick Start Guide:
http://db.apache.org/derby/quick_start.html[^]
Derby is well documented and works fine. Best choice for integrated databases.
Have fun.
|
|
|
|
|
Hello Everyone
iam learning programming in java i started in GUI programming i need to know how to make programs executable i use eclipse i tried to export it as a .jar but it didnt work
pls help
thanks.
|
|
|
|
|
OmarSH wrote: i tried to export it as a .jar but it didnt work You need to provide more details than that. Remember, we cannot see your screen or the commands you may have used to create the .jar file. Please explain what you did to create the jar, what output you got, and what happened when you tried to run it.
One of these days I'm going to think of a really clever signature.
|
|
|
|
|
i didnt use any commands ,i export it as a .jar file using eclipse IDE
|
|
|
|
|
Well you still have not explained what happens. Please show us exactly what commands you use to run it, and what results you see?
One of these days I'm going to think of a really clever signature.
|
|
|
|
|