Abstract/ concrete class questions/problems
I am new to java and working on a abstract problem. I'm getting several errors. Here is the code I have so far for the abstract class. I commented out the super and it compiles but I'm not sure if it correct. I'm suppose to create a abstract base class Animal. Single constructor requires String to indicate type of animal which then is stored in an instance variable. I also have to add a few methods (describe(), move(), etc).
public abstract class Animal
public Animal(String type)
//super(type);
public abstract String describe();
public abstract String sound();
public abstract String sleep();
public abstract String move();
}
thanks for the replies. I modified my code but I have a few more errors I can't figure out. Can you browse the code and help point me in the right direction.
Here are the errors I get
cannot find symbol
symbol : constructor Cat(java.lang.String,java.lang.String)
location: class Cat
cannot find symbol
symbol : constructor Robin(java.lang.String)
location: class Robin
abstract base class:
public abstract class Animal
String type;
public Animal(String type)
this.type = type;
public abstract String describe();
public abstract String sound();
public abstract String sleep();
public abstract String move();
}concrete class
public class Cat extends Animal
private String name;
protected String breed;
public Cat()
super("Cat");
public String describe()
return new String(",a breed of Cat called");
public String sound()
return new String("Meow");
public String sleep()
return new String("Kitty is having purfect dreams!");
public String move()
return new String("This little Kitty moves fast!");
}another abstract class
public abstract class Bird extends Animal
protected String breed;
public Bird()
super("Bird");
public abstract String move();
}here is the abstract test program itself
public class AbstractTest
public static void main(String[] args)
Cat cat = new Cat("Kitty", "Angora");
Robin bird = new Robin("Rockin");
System.out.println("Form the cat: ");
System.out.print("This is: "); cat.describe();
System.out.print("Sound: "); cat.sound();
System.out.print("Sleeping: "); cat.sleep();
System.out.print("Moving: "); cat.move();
System.out.println("\n");
System.out.println("For the robin: "); bird.describe();
System.out.print("This is: "); bird.sound();
System.out.print("Sound: "); bird.sleep();
System.out.print("Moving: "); bird.move();
System.out.print("\n");
System.out.println("nEnd of program.");
}
Similar Messages
-
Concrete classes implement abstract class and implements the interface
I have one query..
In java collection framework, concrete classes extend the abstract classes and implement the interface. What is the reason behind extending the class and implementing the interface when the abstract class actually claims to implement that interface?
For example :
Class Vector extends AbstractList and implements List ,....
But the abstract class AbstractList implements List.. So the class Vector need not explicitly implement interface List.
So, what is the reason behind this explicit definition...?
If anybody knows please let me know..
Thanx
Rajendra.Why do you post this question again? You already asked this once in another thread and it has been extensively debated in that thread: http://forum.java.sun.com/thread.jsp?forum=31&thread=347682
-
Abstract classes, Interfaces, and concrete classes
I have another technical interview tomorrow and somehow I keep getting asked the same question and I feel my answer is not really up to par. The question is:
"What is the advantage of subclassing an abstract class versus concrete class?"
"What is the difference of using an interface versus an abstract class, which is better to use?"
For the first question, I usually answer performance is the advantage because you don't have to instantiate the class.
For the second question, I usually say that you can put implementation in an abstract class and you can't in an interface. I really can't answer the second part to this question.
Any ideas?For the first question, I usually answer performance
is the advantage because you don't have to instantiate
the class. Try invoking the class B in the following somewhere in another class.
abstract class A{
A(){
System.out.println("abstract instantiated");
class B extends A{
B(){super();}
} -
First off, I hope I'm posting in the correct section of the forum, apologies if I'm not.
I have a bit a of a weird query more so than a question.
I have recently been given the challenge of developing a mobile application. So as one does when one gets a job, they sit down and have a think about how to best use Java inheritance to make my their design nice and neat.
So anyway to do some of the GPS stuff for my app I am using the JSF-179, an API specification for location info. So this JSF API is implemented by a number of providers, nokia, samsung, sony ericsson, etc..
So as all implementations stick to the API, the code should remain the same for each platform, the only change will be where the code is imported from.
So for example each class will have:
import com.nokia.jsf-179
import com.sony.jsf-179
import com.samsung.jsf-179And this import info will be the only code that will change.
I had a number of ideas:
1 - Create an Interface with methods each concrete class can implement, but with this approach a code re-write is required. Also each sub class will conform to the java is-a rule so it really should extend an abstract class as opposed to implement an Interface.
2 - Extend Abstract class, we still have the code re-write issue.
So how then do I keep the code the same but only change the import info all nice and neat like? Is there some kind of abstract marker for imports?kajbj wrote:
@Op. I don't know if you question is more of a design question, or if you have a question that is related to Java ME, or development on mobile phones. I'm however moving this thread from the Generics forum (since the question isn't related to Generics).given that [Joahim's answer|http://forums.sun.com/thread.jspa?messageID=10806927#10806927] satisfied OP, this topic better matches Java ME than design. Suggest to move it to CLDC and MIDP forum for closer toipic alignment -
Question about Abstract,Final Class
when we are using final keyword along with class definition .we are making that class final, means we can’t extend that class. The same thing happens when we make our constructors private. From usability perspective both are same ? or is there any difference?
Secondly accounting to java syntax a class can be either final or abstract and not both .Then why language specification doesn't impose any restriction on making abstract classes constructor private. We can create an Abstract class with private Constructor (Basically utility class with all methods are static) ,to make this class Singleton .This situation is equal to abstract final class ?
Thanks,
Paul.EJP wrote:
when we are using final keyword along with class definition .we are making that class final, means we can’t extend that class. The same thing happens when we make our constructors private.No it doesn't.
Secondly accounting to java syntax a class can be either final or abstract and not both.Correct.
Then why language specification doesn't impose any restriction on making abstract classes constructor private.Why should it? That proposition doesn't follow from your previous sentence.I think OP is asking about this case
public abstract class WTF {
private WTF() {}
private WTF(...) {}
}where the class is abstract and all the c'tors are final. It's an abstract class that cannot be extended, much like a final abstract class would be if it were allowed. So, since purpose of abstract classes is to be extended, the OP seems to be asking, "Why can we, in this fashion, create an abstract class that cannot be extended?"
I don't know the answer to that, but I would guess that, while final is an explicit syntactical element for the purpose of making a class non-extensible, in the all-private-c'tors case, the non-extensibility is simply a side effect, and probably enough of a corner case that it wasn't worth the effort to explicitly forbid it in the spec.
I also think it's something not worth thinking much about. It was certainly not a key point of some grand design. -
Abstract Singleton Class?
hi all
i have an abstract class and i want to extend it such that it becomes a singleton. However i wish i can also gain the benefits of abstraction so that i can reference the abstract class whatever the concrete class that extends it
so how can i write the "getInstance()" method in both the abstract and concrete classes knowing that i can't create an abstract static method?!
thanks in advancethis has nothing to do with my question
my question is:
if you have class A abstract and class B inherits from class A
then i want to make class A a singleton with a single underlaying instance of class B
such that when i call A.getInstance() it first checks if the instance it has is null it creates a new object from class B and use it as an instance but ofcourse it has to be general to all several subclasses to be used according to each case. -
hey can someone show me the code on how to write a concrete class for automobiles because ive written the main abstract superclass which should contain the commonalities of serialnumber, and quantity, but im not sure how to write out the first concrete subclass and what it should contain if someone can provide the code thatd be cool thanks.
{ from EdenMonaro }
"I'd start with a pencil and a blank sheet of paper. An abstract Asset class and concrete child classes seem to be a good place to start. What information is common to all your assets? For example, asset number, asset description, purchase date, purchase price, accumulated depreciation, current location.
What information is unique to the child classes? Serial numbers on automobiles and electronic gear? Automobiles have lots of identification numbers: engine numbers, VINs, registration, insurance. CDs have a title and artist(s) with tracks. Furniture is different again, type (desk, chair, etc), colour, finish.
You need another class with collections of assets, perhaps AssetRegister. This is the class you put methods in to list and search assets. "Implement the asset tracking program. allow the user
to add, modify, and delete electronics, automobiles,
furniture, and cd's. Allow the user to list the assets
by category and search for an asset by its serial
number.
Write an add method, a modify method, a delete method, and your search methods. Make these generic so that can be used for all categories. For a GUI are you going to use a servlet/jsp/html or an application/applet? You need to start writing the pieces that I mentioned and come back with specific implementation questions. -
How to improve speed of queries that use ORM one table per concrete class
Hi,
Many tools that make ORM (Object Relational Mapping) like Castor, Hibernate, Toplink, JPOX, etc.., have the one table per concrete class feature that maps objects to follow structure:
CREATE TABLE ABSTRACTPRODUCT (
ID VARCHAR(8) NOT NULL,
DESCRIPTION VARCHAR(60) NOT NULL,
PRIMARY KEY(ID)
CREATE TABLE PRODUCT (
ID VARCHAR(8) NOT NULL REFERENCES ABSTRACTPRODUCT(ID),
CODE VARCHAR(10) NOT NULL,
PRICE DECIMAL(12,2),
PRIMARY KEY(ID)
CREATE UNIQUE INDEX iProduct ON Product(code)
CREATE TABLE BOOK (
ID VARCHAR(8) NOT NULL REFERENCES PRODUCT(ID),
AUTHOR VARCHAR(60) NOT NULL,
PRIMARY KEY (ID)
CREATE TABLE COMPACTDISK (
ID VARCHAR(8) NOT NULL REFERENCES PRODUCT(ID),
ARTIST VARCHAR(60) NOT NULL,
PRIMARY KEY(ID)
there is a way to improve queries like
SELECT
pd.code CODE,
abpd.description DESCRIPTION,
DECODE(bk.id,NULL,cd.artist,bk.author) PERSON
FROM
ABSTRACTPRODUCT abpd,
PRODUCT pd,
BOOK bk,
COMPACTDISK cd
WHERE
pd.id = abpd.id AND
bk.id(+) = abpd.id AND
cd.id(+) = abpd.id AND
pd.code like '101%'
or like this:
SELECT
pd.code CODE,
abpd.description DESCRIPTION,
DECODE(bk.id,NULL,cd.artist,bk.author) PERSON
FROM
ABSTRACTPRODUCT abpd,
PRODUCT pd,
BOOK bk,
COMPACTDISK cd
WHERE
pd.id = abpd.id AND
bk.id(+) = abpd.id AND
cd.id(+) = abpd.id AND
abpd.description like '%STARS%' AND
pd.price BETWEEN 1 AND 10
think in a table with many rows, then exists something inside MaxDB to improve this type of queries? like some anotations on SQL? or declare tables that extends another by PK? on other databases i managed this using Materialized Views, but i think that this can be faster just using PK, i'm wrong? the better is to consolidate all tables in one table? what is the impact on database size with this consolidation?
note: with consolidation i will miss NOT NULL constraint at database side.
thanks for any insight.
ClóvisHi Lars,
i dont understand because the optimizer get that Index for TM at execution plan, and because dont use the join via KEY column, note the WHERE clause is "TM.OID = MF.MY_TIPO_MOVIMENTO" by the key column, and the optimizer uses an INDEX that the indexed column is ID_SYS, that isnt and cant be a primary key, because its not UNIQUE, follow the index columns:
indexes of TipoMovimento
INDEXNAME COLUMNNAME SORT COLUMNNO DATATYPE LEN INDEX_USED FILESTATE DISABLED
ITIPOMOVIMENTO TIPO ASC 1 VARCHAR 2 220546 OK NO
ITIPOMOVIMENTO ID_SYS ASC 2 CHAR 6 220546 OK NO
ITIPOMOVIMENTO MY_CONTA_DEBITO ASC 3 CHAR 8 220546 OK NO
ITIPOMOVIMENTO MY_CONTA_CREDITO ASC 4 CHAR 8 220546 OK NO
ITIPOMOVIMENTO1 ID_SYS ASC 1 CHAR 6 567358 OK NO
ITIPOMOVIMENTO2 DESCRICAO ASC 1 VARCHAR 60 94692 OK NO
after i create the index iTituloCobrancaX7 on TituloCobranca(OID,DATA_VENCIMENTO) in a backup instance and get surprised with the follow explain:
OWNER TABLENAME COLUMN_OR_INDEX STRATEGY PAGECOUNT
TC ITITULOCOBRANCA1 RANGE CONDITION FOR INDEX 5368
DATA_VENCIMENTO (USED INDEX COLUMN)
MF OID JOIN VIA KEY COLUMN 9427
TM OID JOIN VIA KEY COLUMN 22
TABLE HASHED
PS OID JOIN VIA KEY COLUMN 1350
BOL OID JOIN VIA KEY COLUMN 497
NO TEMPORARY RESULTS CREATED
JDBC_CURSOR_19 RESULT IS COPIED , COSTVALUE IS 988
note that now the optimizer gets the index ITITULOCOBRANCA1 as i expected, if i drop the new index iTituloCobrancaX7 the optimizer still getting this execution plan, with this the query executes at 110 ms, with that great news i do same thing in the production system, but the execution plan dont changes, and i still getting a long execution time this time at 413516 ms. maybe the problem is how optimizer measure my tables.
i checked in DBAnalyser that the problem is catalog cache hit rate (we discussed this at [catalog cache hit rate, how to increase?|;
) and the low selectivity of this SQL command, then its because of this that to achieve a better selectivity i must have an index with, MF.MY_SACADO, MF.TIPO and TC.DATA_VENCIMENTO, as explained in previous posts, since this type of index inside MaxDB isnt possible, i have no choice to speed this type of query without changing tables structure.
MaxDB developers can develop this type of index? or a feature like this dont have any plans to be made?
if no, i must create another schema, to consolidate tables to speed queries on my system, but with this consolidation i will get more overhead, i must solve the less selectivity because i think if the data on tables increase, the query becomes impossible, i see that CREATE INDEX supports FUNCTION, maybe a FUNCTION that join data of two tables can solve this?
about instance configuration it is:
Machine:
Version: '64BIT Kernel'
Version: 'X64/LIX86 7.6.03 Build 007-123-157-515'
Version: 'FAST'
Machine: 'x86_64'
Processors: 2 ( logical: 8, cores: 8 )
data volumes:
ID MODE CONFIGUREDSIZE USABLESIZE USEDSIZE USEDSIZEPERCENTAGE DROPVOLUME TOTALCLUSTERAREASIZE RESERVEDCLUSTERAREASIZE USEDCLUSTERAREASIZE PATH
1 NORMAL 4194304 4194288 379464 9 NO 0 0 0 /db/SPDT/data/data01.dat
2 NORMAL 4194304 4194288 380432 9 NO 0 0 0 /db/SPDT/data/data02.dat
3 NORMAL 4194304 4194288 379184 9 NO 0 0 0 /db/SPDT/data/data03.dat
4 NORMAL 4194304 4194288 379624 9 NO 0 0 0 /db/SPDT/data/data04.dat
5 NORMAL 4194304 4194288 380024 9 NO 0 0 0 /db/SPDT/data/data05.dat
log volumes:
ID CONFIGUREDSIZE USABLESIZE PATH MIRRORPATH
1 51200 51176 /db/SPDT/log/log01.dat ?
parameters:
KERNELVERSION KERNEL 7.6.03 BUILD 007-123-157-515
INSTANCE_TYPE OLTP
MCOD NO
_SERVERDB_FOR_SAP YES
_UNICODE NO
DEFAULT_CODE ASCII
DATE_TIME_FORMAT ISO
CONTROLUSERID DBM
CONTROLPASSWORD
MAXLOGVOLUMES 2
MAXDATAVOLUMES 11
LOG_VOLUME_NAME_001 /db/SPDT/log/log01.dat
LOG_VOLUME_TYPE_001 F
LOG_VOLUME_SIZE_001 6400
DATA_VOLUME_NAME_0005 /db/SPDT/data/data05.dat
DATA_VOLUME_NAME_0004 /db/SPDT/data/data04.dat
DATA_VOLUME_NAME_0003 /db/SPDT/data/data03.dat
DATA_VOLUME_NAME_0002 /db/SPDT/data/data02.dat
DATA_VOLUME_NAME_0001 /db/SPDT/data/data01.dat
DATA_VOLUME_TYPE_0005 F
DATA_VOLUME_TYPE_0004 F
DATA_VOLUME_TYPE_0003 F
DATA_VOLUME_TYPE_0002 F
DATA_VOLUME_TYPE_0001 F
DATA_VOLUME_SIZE_0005 524288
DATA_VOLUME_SIZE_0004 524288
DATA_VOLUME_SIZE_0003 524288
DATA_VOLUME_SIZE_0002 524288
DATA_VOLUME_SIZE_0001 524288
DATA_VOLUME_MODE_0005 NORMAL
DATA_VOLUME_MODE_0004 NORMAL
DATA_VOLUME_MODE_0003 NORMAL
DATA_VOLUME_MODE_0002 NORMAL
DATA_VOLUME_MODE_0001 NORMAL
DATA_VOLUME_GROUPS 1
LOG_BACKUP_TO_PIPE NO
MAXBACKUPDEVS 2
LOG_MIRRORED NO
MAXVOLUMES 14
LOG_IO_BLOCK_COUNT 8
DATA_IO_BLOCK_COUNT 64
BACKUP_BLOCK_CNT 64
_DELAY_LOGWRITER 0
LOG_IO_QUEUE 50
_RESTART_TIME 600
MAXCPU 8
MAX_LOG_QUEUE_COUNT 0
USED_MAX_LOG_QUEUE_COUNT 8
LOG_QUEUE_COUNT 1
MAXUSERTASKS 500
_TRANS_RGNS 8
_TAB_RGNS 8
_OMS_REGIONS 0
_OMS_RGNS 7
OMS_HEAP_LIMIT 0
OMS_HEAP_COUNT 8
OMS_HEAP_BLOCKSIZE 10000
OMS_HEAP_THRESHOLD 100
OMS_VERS_THRESHOLD 2097152
HEAP_CHECK_LEVEL 0
_ROW_RGNS 8
RESERVEDSERVERTASKS 16
MINSERVERTASKS 28
MAXSERVERTASKS 28
_MAXGARBAGE_COLL 1
_MAXTRANS 4008
MAXLOCKS 120080
_LOCK_SUPPLY_BLOCK 100
DEADLOCK_DETECTION 4
SESSION_TIMEOUT 180
OMS_STREAM_TIMEOUT 30
REQUEST_TIMEOUT 5000
_IOPROCS_PER_DEV 2
_IOPROCS_FOR_PRIO 0
_IOPROCS_FOR_READER 0
_USE_IOPROCS_ONLY NO
_IOPROCS_SWITCH 2
LRU_FOR_SCAN NO
_PAGE_SIZE 8192
_PACKET_SIZE 131072
_MINREPLY_SIZE 4096
_MBLOCK_DATA_SIZE 32768
_MBLOCK_QUAL_SIZE 32768
_MBLOCK_STACK_SIZE 32768
_MBLOCK_STRAT_SIZE 16384
_WORKSTACK_SIZE 8192
_WORKDATA_SIZE 8192
_CAT_CACHE_MINSIZE 262144
CAT_CACHE_SUPPLY 131072
INIT_ALLOCATORSIZE 262144
ALLOW_MULTIPLE_SERVERTASK_UKTS NO
_TASKCLUSTER_01 tw;al;ut;2000*sv,100*bup;10*ev,10*gc;
_TASKCLUSTER_02 ti,100*dw;63*us;
_TASKCLUSTER_03 equalize
_DYN_TASK_STACK NO
_MP_RGN_QUEUE YES
_MP_RGN_DIRTY_READ DEFAULT
_MP_RGN_BUSY_WAIT DEFAULT
_MP_DISP_LOOPS 2
_MP_DISP_PRIO DEFAULT
MP_RGN_LOOP -1
_MP_RGN_PRIO DEFAULT
MAXRGN_REQUEST -1
_PRIO_BASE_U2U 100
_PRIO_BASE_IOC 80
_PRIO_BASE_RAV 80
_PRIO_BASE_REX 40
_PRIO_BASE_COM 10
_PRIO_FACTOR 80
_DELAY_COMMIT NO
_MAXTASK_STACK 512
MAX_SERVERTASK_STACK 500
MAX_SPECIALTASK_STACK 500
_DW_IO_AREA_SIZE 50
_DW_IO_AREA_FLUSH 50
FBM_VOLUME_COMPRESSION 50
FBM_VOLUME_BALANCE 10
_FBM_LOW_IO_RATE 10
CACHE_SIZE 262144
_DW_LRU_TAIL_FLUSH 25
XP_DATA_CACHE_RGNS 0
_DATA_CACHE_RGNS 64
XP_CONVERTER_REGIONS 0
CONVERTER_REGIONS 8
XP_MAXPAGER 0
MAXPAGER 64
SEQUENCE_CACHE 1
_IDXFILE_LIST_SIZE 2048
VOLUMENO_BIT_COUNT 8
OPTIM_MAX_MERGE 500
OPTIM_INV_ONLY YES
OPTIM_CACHE NO
OPTIM_JOIN_FETCH 0
JOIN_SEARCH_LEVEL 0
JOIN_MAXTAB_LEVEL4 16
JOIN_MAXTAB_LEVEL9 5
_READAHEAD_BLOBS 32
CLUSTER_WRITE_THRESHOLD 80
CLUSTERED_LOBS NO
RUNDIRECTORY /var/opt/sdb/data/wrk/SPDT
OPMSG1 /dev/console
OPMSG2 /dev/null
_KERNELDIAGFILE knldiag
KERNELDIAGSIZE 800
_EVENTFILE knldiag.evt
_EVENTSIZE 0
_MAXEVENTTASKS 2
_MAXEVENTS 100
_KERNELTRACEFILE knltrace
TRACE_PAGES_TI 2
TRACE_PAGES_GC 20
TRACE_PAGES_LW 5
TRACE_PAGES_PG 3
TRACE_PAGES_US 10
TRACE_PAGES_UT 5
TRACE_PAGES_SV 5
TRACE_PAGES_EV 2
TRACE_PAGES_BUP 0
KERNELTRACESIZE 5369
EXTERNAL_DUMP_REQUEST NO
_AK_DUMP_ALLOWED YES
_KERNELDUMPFILE knldump
_RTEDUMPFILE rtedump
_UTILITY_PROTFILE dbm.utl
UTILITY_PROTSIZE 100
_BACKUP_HISTFILE dbm.knl
_BACKUP_MED_DEF dbm.mdf
_MAX_MESSAGE_FILES 0
_SHMKERNEL 44601
__PARAM_CHANGED___ 0
__PARAM_VERIFIED__ 2008-05-03 23:12:55
DIAG_HISTORY_NUM 2
DIAG_HISTORY_PATH /var/opt/sdb/data/wrk/SPDT/DIAGHISTORY
_DIAG_SEM 1
SHOW_MAX_STACK_USE NO
SHOW_MAX_KB_STACK_USE NO
LOG_SEGMENT_SIZE 2133
_COMMENT
SUPPRESS_CORE YES
FORMATTING_MODE PARALLEL
FORMAT_DATAVOLUME YES
OFFICIAL_NODE
UKT_CPU_RELATIONSHIP NONE
HIRES_TIMER_TYPE CPU
LOAD_BALANCING_CHK 30
LOAD_BALANCING_DIF 10
LOAD_BALANCING_EQ 5
HS_STORAGE_DLL libhsscopy
HS_SYNC_INTERVAL 50
USE_OPEN_DIRECT YES
USE_OPEN_DIRECT_FOR_BACKUP NO
SYMBOL_DEMANGLING NO
EXPAND_COM_TRACE NO
JOIN_TABLEBUFFER 128
SET_VOLUME_LOCK YES
SHAREDSQL YES
SHAREDSQL_CLEANUPTHRESHOLD 25
SHAREDSQL_COMMANDCACHESIZE 262144
MEMORY_ALLOCATION_LIMIT 0
USE_SYSTEM_PAGE_CACHE YES
USE_COROUTINES YES
FORBID_LOAD_BALANCING YES
MIN_RETENTION_TIME 60
MAX_RETENTION_TIME 480
MAX_SINGLE_HASHTABLE_SIZE 512
MAX_HASHTABLE_MEMORY 5120
ENABLE_CHECK_INSTANCE YES
RTE_TEST_REGIONS 0
HASHED_RESULTSET YES
HASHED_RESULTSET_CACHESIZE 262144
CHECK_HASHED_RESULTSET 0
AUTO_RECREATE_BAD_INDEXES NO
AUTHENTICATION_ALLOW
AUTHENTICATION_DENY
TRACE_AK NO
TRACE_DEFAULT NO
TRACE_DELETE NO
TRACE_INDEX NO
TRACE_INSERT NO
TRACE_LOCK NO
TRACE_LONG NO
TRACE_OBJECT NO
TRACE_OBJECT_ADD NO
TRACE_OBJECT_ALTER NO
TRACE_OBJECT_FREE NO
TRACE_OBJECT_GET NO
TRACE_OPTIMIZE NO
TRACE_ORDER NO
TRACE_ORDER_STANDARD NO
TRACE_PAGES NO
TRACE_PRIMARY_TREE NO
TRACE_SELECT NO
TRACE_TIME NO
TRACE_UPDATE NO
TRACE_STOP_ERRORCODE 0
TRACE_ALLOCATOR 0
TRACE_CATALOG 0
TRACE_CLIENTKERNELCOM 0
TRACE_COMMON 0
TRACE_COMMUNICATION 0
TRACE_CONVERTER 0
TRACE_DATACHAIN 0
TRACE_DATACACHE 0
TRACE_DATAPAM 0
TRACE_DATATREE 0
TRACE_DATAINDEX 0
TRACE_DBPROC 0
TRACE_FBM 0
TRACE_FILEDIR 0
TRACE_FRAMECTRL 0
TRACE_IOMAN 0
TRACE_IPC 0
TRACE_JOIN 0
TRACE_KSQL 0
TRACE_LOGACTION 0
TRACE_LOGHISTORY 0
TRACE_LOGPAGE 0
TRACE_LOGTRANS 0
TRACE_LOGVOLUME 0
TRACE_MEMORY 0
TRACE_MESSAGES 0
TRACE_OBJECTCONTAINER 0
TRACE_OMS_CONTAINERDIR 0
TRACE_OMS_CONTEXT 0
TRACE_OMS_ERROR 0
TRACE_OMS_FLUSHCACHE 0
TRACE_OMS_INTERFACE 0
TRACE_OMS_KEY 0
TRACE_OMS_KEYRANGE 0
TRACE_OMS_LOCK 0
TRACE_OMS_MEMORY 0
TRACE_OMS_NEWOBJ 0
TRACE_OMS_SESSION 0
TRACE_OMS_STREAM 0
TRACE_OMS_VAROBJECT 0
TRACE_OMS_VERSION 0
TRACE_PAGER 0
TRACE_RUNTIME 0
TRACE_SHAREDSQL 0
TRACE_SQLMANAGER 0
TRACE_SRVTASKS 0
TRACE_SYNCHRONISATION 0
TRACE_SYSVIEW 0
TRACE_TABLE 0
TRACE_VOLUME 0
CHECK_BACKUP NO
CHECK_DATACACHE NO
CHECK_KB_REGIONS NO
CHECK_LOCK NO
CHECK_LOCK_SUPPLY NO
CHECK_REGIONS NO
CHECK_TASK_SPECIFIC_CATALOGCACHE NO
CHECK_TRANSLIST NO
CHECK_TREE NO
CHECK_TREE_LOCKS NO
CHECK_COMMON 0
CHECK_CONVERTER 0
CHECK_DATAPAGELOG 0
CHECK_DATAINDEX 0
CHECK_FBM 0
CHECK_IOMAN 0
CHECK_LOGHISTORY 0
CHECK_LOGPAGE 0
CHECK_LOGTRANS 0
CHECK_LOGVOLUME 0
CHECK_SRVTASKS 0
OPTIMIZE_AGGREGATION YES
OPTIMIZE_FETCH_REVERSE YES
OPTIMIZE_STAR_JOIN YES
OPTIMIZE_JOIN_ONEPHASE YES
OPTIMIZE_JOIN_OUTER YES
OPTIMIZE_MIN_MAX YES
OPTIMIZE_FIRST_ROWS YES
OPTIMIZE_OPERATOR_JOIN YES
OPTIMIZE_JOIN_HASHTABLE YES
OPTIMIZE_JOIN_HASH_MINIMAL_RATIO 1
OPTIMIZE_OPERATOR_JOIN_COSTFUNC YES
OPTIMIZE_JOIN_PARALLEL_MINSIZE 1000000
OPTIMIZE_JOIN_PARALLEL_SERVERS 0
OPTIMIZE_JOIN_OPERATOR_SORT YES
OPTIMIZE_QUAL_ON_INDEX YES
DDLTRIGGER YES
SUBTREE_LOCKS NO
MONITOR_READ 2147483647
MONITOR_TIME 2147483647
MONITOR_SELECTIVITY 0
MONITOR_ROWNO 0
CALLSTACKLEVEL 0
OMS_RUN_IN_UDE_SERVER NO
OPTIMIZE_QUERYREWRITE OPERATOR
TRACE_QUERYREWRITE 0
CHECK_QUERYREWRITE 0
PROTECT_DATACACHE_MEMORY NO
LOCAL_REDO_LOG_BUFFER_SIZE 0
FILEDIR_SPINLOCKPOOL_SIZE 10
TRANS_HISTORY_SIZE 0
TRANS_THRESHOLD_VALUE 60
ENABLE_SYSTEM_TRIGGERS YES
DBFILLINGABOVELIMIT 70L80M85M90H95H96H97H98H99H
DBFILLINGBELOWLIMIT 70L80L85L90L95L
LOGABOVELIMIT 50L75L90M95M96H97H98H99H
AUTOSAVE 1
BACKUPRESULT 1
CHECKDATA 1
EVENT 1
ADMIN 1
ONLINE 1
UPDSTATWANTED 1
OUTOFSESSIONS 3
ERROR 3
SYSTEMERROR 3
DATABASEFULL 1
LOGFULL 1
LOGSEGMENTFULL 1
STANDBY 1
USESELECTFETCH YES
USEVARIABLEINPUT NO
UPDATESTAT_PARALLEL_SERVERS 0
UPDATESTAT_SAMPLE_ALGO 1
SIMULATE_VECTORIO IF_OPEN_DIRECT_OR_RAW_DEVICE
COLUMNCOMPRESSION YES
TIME_MEASUREMENT NO
CHECK_TABLE_WIDTH NO
MAX_MESSAGE_LIST_LENGTH 100
SYMBOL_RESOLUTION YES
PREALLOCATE_IOWORKER NO
CACHE_IN_SHARED_MEMORY NO
INDEX_LEAF_CACHING 2
NO_SYNC_TO_DISK_WANTED NO
SPINLOCK_LOOP_COUNT 30000
SPINLOCK_BACKOFF_BASE 1
SPINLOCK_BACKOFF_FACTOR 2
SPINLOCK_BACKOFF_MAXIMUM 64
ROW_LOCKS_PER_TRANSACTION 50
USEUNICODECOLUMNCOMPRESSION NO
about send you the data from tables, i dont have permission to do that, since all data is in a production system, the customer dont give me the rights to send any information. sorry about that.
best regards
Clóvis -
Generic interface in abstract super class
hello java folks!
i have a weird problem with a generics implementation of an interface which is implemented in an abstract class.
if i extend from this abstract class and try to override the method i get this compiler error:
cannot directly invoke abstract method...
but in my abstract super class this method is not implemented as abstract!
do i have an error in my understanding how to work with generics or is this a bug in javac?
(note: the message is trown by the eclipse ide, but i think it has someting to do with javac...)
thanks for every hint!
greetings daniel
examples:
public interface MyInterface <T extends Object> {
public String testMe(T t);
public abstract class AbstractSuperClass<T extends AbstractSuperClass> implements MyInterface<T> {
public String testMe(T o) {
// do something with o...
// now we have a String str
return str;
public final class SubClass extends AbstractSuperClass<SubClass> {
@Override
public String testMe(SubClass o)
return super.testMe(o);
}Hi Wachtda,
Firstly, T extends Object is redundant as all classes implicitly extend the Object class.
Therefore :
public interface MyInterface <T> {
public String testMe(T t);
}Secondly, abstract classes may have both abstract and non-abstract instance methods. Also, two methods, one abstract and one non-abstract, must have a different signature.
The following example will give a compile error because the methods share the same signature :
abstract class Test {
public void sayHello() {
System.out.println("Hello");
abstract public void sayHello();
}Therefore, to make an interface method as abstract would simply block the possibility of implementing it.
BTW, you can do this :
abstract class Test {
public void sayHello() {
System.out.println("Hello");
abstract public void sayHello(String name);
}Finally, there's no bug in javac. -
Where to put methods in a abstract base class - subclasses system
Hi,
I’d like to ask a question on some basic design practice.
When there are methods which are common in some subclasses so I would like to “move them up” in the base abstract class, I would also like to make sure that the ADT concept of the base class itself is not broken. So I don’t want to have methods in the base class that are not general enough to be there. How to resolve this?
For example I create a base abstract class Vehicle. Then I create subclasses Plane and Tanker and realize that the startEnginge() method in them is the same and in order remove the duplicated code, I can put it in Vehicle. But later there may be Bicycle or Sled subclasses which don’t need startEngine().
In a broader sense, I would like to keep the Vehicle class as similar to the real word concept of vehicles as possible. And not evey vehicle have engine of course.
What is the solution?
Extending the class hierarchy by injecting another abstract class between the base and the subclasses? (e.g: VehicleWithEngine)
I suppose I can’t use Interfaces because I need to have the common implemenations as well.
Thanks for any comments in advance,
lemonboston
ps: I am a beginner and don't know the terminology, so if there are programming expression for the followings for example, I would be thankful if someone could help with this too:
- moving common methods up in the class hierarchy
- injecting a class in the hierarchy
- abstract base class - subclasses systemlemonboston wrote:
Hi,
I’d like to ask a question on some basic design practice.
When there are methods which are common in some subclasses so I would like to “move them up” in the base abstract class, I would also like to make sure that the ADT concept of the base class itself is not broken. So I don’t want to have methods in the base class that are not general enough to be there. How to resolve this?
You are talking about code.
Instead you need to talk about the design.
The base class represents conceptually a 'type' of something. That 'type' defines behavior. That behavior is what goes in the base class nothing else (in terms of design.)
If you have common functionality which does not fit into the definition (design) of the 'type' then you put it in another class and use (composition) that class in the sub class.
For example I create a base abstract class Vehicle. Then I create subclasses Plane and Tanker and realize that the startEnginge() method in them is the same and in order remove the duplicated code, I can put it in Vehicle. But later there may be Bicycle or Sled subclasses which don’t need startEngine(). No that is not how it works.
You have specific examples of some vehicles and then you need to manage those types generically. That is the first step.
Second step is then to determine what the exact 'type' is that you want to manage. And you use the requirements of the need to create the 'type'.
Then you look at the specific examples to determine how they will meet the needs of the type.
Thus if I have an application that must start the engines of all the vehicles in the city then I must have a vehicle class which has startEngine.
But if I have an application that manages vehicles as inventory (like a retail store) and then decide that because my examples both have engines that I might as well move it into the base class. In that case there is no 'need' for the application to manage starting vehicles. The fact that both have engines is irrelevant.
So looking back at your example you have stated functionality about your specific types but you have not stated anything about why your application needs to deal with that functionality generically.
Another way to think about it is that you do not put the shared functionality in the base because you can but rather because you must. -
Concrete class name in StackTraceElement
Does anyone know how to get information about concrete classes
on the java stack trace? It is customary to get stack traces that
list abstract classes or interfaces, but in the example below
what was the concrete class implementing HttpServlet or extending
the abstract class xxxCommandServlet that caused the exception?
Java's StackTraceElement doesn't have a reference to the object
that is calling a method that is put on the stack. Surely that
information is on the stack frame since they must be passing
around a "this" pointer as one of the parameters, but how to get it?
Wouldn't it be nice to have an additional field in StackTraceElement,
callingClass. I wonder if it is planned since it would help in
debugging.
public final class StackTraceElement implements java.io.Serializable {
// Initialized by VM
private String declaringClass;
private String callingClass; // NEW FIELD??
private String methodName;
private String fileName;
private int lineNumber;
Thanks very much,
Dmitri
Example stack trace
at com.xxx.servlet.xxxCommandServlet.doGet(xxxCommandServlet.java:66)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:740)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java:265)
at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java:200)
at weblogic.servlet.internal.WebAppServletContext.invokeServlet(WebAppServletContext.java:2495)
at weblogic.servlet.internal.ServletRequestImpl.execute(ServletRequestImpl.java:2204)
at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:139)
at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:120)No, com.xxx.servlet.xxxCommandServlet is an abstract
class. Nonetheless, as the stack trace indicated, there is a method named doGet, and the exception occurred at line 66 in xxxCommandServlet.java. So you're saying you can't directly instantiate xxxCommandServlet, this is true, but whatever extends that abstract class inherited the doGet method, of course. It shouldn't matter what the actual class was; the error wasn't in the actual class, but in the xxxCommandServlet (or resulting from something else within the stack trace). -
Abstract Entity classes with Collections
I trying to figure out a way to have a generics collection in a parent collection that can hold various entity types of the same super-class.
One thing I've tried was the following:
@Entity
public class ParentEnt implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private Long id;
@Column
private String parentName;
@OneToMany(mappedBy="parentEnt")
private Collection<ChildAbs> children;
/* Methods removed */
@Entity
public abstract class ChildAbs implements java.io.Serializable {
protected static final long serialVersionUID = 1L;
@Id
protected Long id;
@ManyToOne
protected ParentEnt parentEnt;
/* Methods removed */
@Entity
public class ChildEnt extends ChildAbs implements Serializable {
@Column
protected String childName;
}but this is the error I get:
Exception [TOPLINK-30005] (Oracle TopLink Essentials - 2.0 (Build b58g-fcs (09/07/2007))): oracle.toplink.essentials.exceptions.PersistenceUnitLoadingException
Exception Description: An exception was thrown while searching for persistence archives with ClassLoader: sun.misc.Launcher$AppClassLoader@11b86e7
Internal Exception: javax.persistence.PersistenceException: Exception [TOPLINK-28018] (Oracle TopLink Essentials - 2.0 (Build b58g-fcs (09/07/2007))): oracle.toplink.essentials.exceptions.EntityManagerSetupException
Exception Description: predeploy for PersistenceUnit [testPU] failed.
Internal Exception: Exception [TOPLINK-7250] (Oracle TopLink Essentials - 2.0 (Build b58g-fcs (09/07/2007))): oracle.toplink.essentials.exceptions.ValidationException
Exception Description: [class test.ParentEnt] uses a non-entity [class test.ChildAbs] as target entity in the relationship attribute [private java.util.Collection test.ParentEnt.children].So, it looks like there is no way to have a generics collection for an abstract entity class. Is there another way to accomplish what I want using a generics collection?
Additionally, entity ChildEnt generates an error due to the abstract class' id property not carrying forward (see Abstract Entities: http://java.sun.com/javaee/5/docs/tutorial/doc/bnbqa.html#bnbqo)
Exception Description: Entity class [class testprintservices.ChildEnt] has no primary key specified. It should define either an @Id, @EmbeddedId or an @IdClass.Any input would be appreciated.As far as my first question, I was trying to make my collection so it can hold various type of entity classes, but now that I think about it, it was a bad idea. For instance, being able to hold ChildEnt and ChildEnt2 in the same collection. If JPA did allow this, it might be possible to save the entities to the DB, but the reverse wouldn't be possible.
Ok, regarding my 2nd question: I don't understand why having it as @Entity wouldn't. The links (mine and yours) clearly shows that @Id is carried forward in the example they provide. Anyway, since I can't use the superclass in the collection, this is pointless. I'll use the suggested annotation.
Thanks. -
Classes communication problem - Mediator?
Hi all,
I have JFrame extension class. In this class I created:
- extension of JMenu () with included JMenuItems.
- extension of Canvas with some graphic things
- 2 different extensions of JDialog
Now I need to call method in Canvas from JMenu and from one of JDialogs. From second JDialog I need call method from parent JFrame. From JFrame I need call methods from all other :)
So here is my question - What is better? Create some mediator design pattern class with references to all classes and add to all classes reference to mediator. Or simply add to JFrame references to all other, create public getters, setters.... and to nonJFrame classes add reference to JFrame?
I'm beginner in OOP and I'm not sure what style is "cleaner" :)
Thanks for answers!
P.S: Sorry for my englishThey're suggesting you use composition for your custom dialog, frame, menu, etc. rather than directly extending JDialog or JFrame. It's good advice, however I will point out that Swing is the one area where I found composition sometimes simply wasn't worth the headache, mostly due to the fact that so much of Swing is coded to concrete classes rather than interfaces.
-
Hi,
What is the exact difference between subclass and concrete class?
What is the need in subclassing abstract class to again abstract class?
Thanks in Advance,
venu.Hi,
What is the exact difference between subclass
and concrete class?"Subclass" defines a class' relationship to another class.
class A extends BB is a subclas of A.
Every class in Java except Object is a subclass of some other class.
A concrete class is one that is not abstract.
class A {}
abstract class B{}Cass A is concrete. Class B is not.
A class can be both a subclass and concrete. In fact, every single concrete class except Object is a subclass.
What is the need in subclassing abstract class to
again abstract class?You would do that when you're able to provide concrete implementations for some but not all of the abstract methods -
Hi
Could someone tell me what the difference is between an abstract class, interface class and a concerte class. Cant figure it out.
Thank you
Davidan interface has deferred methods that must be used by the same name by the implenting class(es)
an abstract class CAN have deferred (abstract) methods that must be implemented by the extending class
a concrete class is 'normal' class with no deferred methods
Maybe you are looking for
-
What is the significance of having a compound master data in the planning levels?
In "SAP2" model there is PERPRODCUST as a planning level. This planning level has PERIOD, PRODUCT, CUSTOMER and PRODUCT-CUSTOMER master data as part of the planning level. Wouldn't PERIOD, PRODUCT, CUSTOMER be sufficient? Why is the compound master d
-
Dynamic SQL within a SQL Query ?
is there any possibility to do like this ? SELECT table_name, XXXXXXXX('SELECT Count(*) FROM '||table_name) tot_rows FROM dba_tables WHERE owner = 'SCOTT';or any other trick to run dynamic SQL within the SQL Query? Hoping....that it should be. Rega
-
How to send a notification or warning to my iphone because my iphone was lost ?
How to send a notification or warning to my iphone because my iphone was lost ? Without icloud because i think the person oledi sign out .
-
Java and Javaw hang when I open a file
Hi, I had to clean install my laptop with XP Pro SP2 so I did, I also installed JDK 6 beta, but I tried this with JDK 5 update 7 as well as JDK 1.4.2_08. The problem I am experiencing is that when I have a tool (e.g. NetBeans 5 or Jext 5) or I have m
-
Led Zeppelin mothership cd will not play or import on itunes
The Led Zeppelin CD-Mothership will not play or import onto iTunes, I have not had a problem before, I have all Led Zeppelin CD's on iTunes & thousands of other tracks. Any help would be appreciated.