Subclass UIScrollView with Custom Class

I want to use my custom class "ImageGridView" (subclass of UIScrollView) in Interface Builder.
Here is what I have done:
1) Dragged a UIScrollView onto my main view in IB.
2) Changed the new UIScrollView Class Identity to "ImageGridView" which autocompleted so I thought it should work if it found it no prob.
3) Placed an NSLog(@"HIT") in the init of the ImageGridView code.
4) Also tried debugging break in the ImageGridView
No luck....i can't get the custom class to instantiate .....no code is even run in that class.

Don't forget that the class will be instantiated within Interface Builder and 'saved' within the NIB. At runtime it is unsaved with all of the initialised parameter values intact.
Try using the 'viewDidLoad' (??I think this is the name - going by memory here) method which is called after the view has been restored from its saved state in the NIB.
Susan

Similar Messages

  • Can I dinamicly load a class with custom class loader ?

    Can I dinamicly load a class with custom class loader ?

    Hi,
    I was wondering if you found answer to your question, and also were you using your custom class loader inside a signed applet as I am in a similar situation, and was wondering if you could help me. An example would be great...
    Thanks a lot.
    Regards.

  • Add button to a datagrid with custom class

    Hi.
    I have a custom class that i put in the dataprovider to a datagrid. And when i column with buttons i get the following error.
    ReferenceError: Error #1069: Property null not found on COMPONENTS.Output.OutputFile and there is no default value.
    at mx.controls::Button/set data()[E:\dev\3.0.x\frameworks\projects\framework\src\mx\controls\Button.as:873]
    at mx.controls::DataGrid/http://www.adobe.com/2006/flex/mx/internal::setupRendererFromData()[E:\dev\3.0.x\framework s\projects\framework\src\mx\controls\DataGrid.as:1646]
    at mx.controls::DataGrid/commitProperties()[E:\dev\3.0.x\frameworks\projects\framework\src\m x\controls\DataGrid.as:1606]
    at mx.core::UIComponent/validateProperties()[E:\dev\3.0.x\frameworks\projects\framework\src\ mx\core\UIComponent.as:5670]
    at mx.managers::LayoutManager/validateProperties()[E:\dev\3.0.x\frameworks\projects\framewor k\src\mx\managers\LayoutManager.as:519]
    at mx.managers::LayoutManager/doPhasedInstantiation()[E:\dev\3.0.x\frameworks\projects\frame work\src\mx\managers\LayoutManager.as:669]
    at Function/http://adobe.com/AS3/2006/builtin::apply()
    at mx.core::UIComponent/callLaterDispatcher2()[E:\dev\3.0.x\frameworks\projects\framework\sr c\mx\core\UIComponent.as:8460]
    at mx.core::UIComponent/callLaterDispatcher()[E:\dev\3.0.x\frameworks\projects\framework\src \mx\core\UIComponent.as:8403]
    What shuld i do?
    Thanks for help.

    If you are talking SE54 and Maintenance Views, when I do an SM30 on the Maintenance View and do SYSTEM->STATUS, I see GUI STATUS ZULG on program SAPLSVIM.  If you look at that status, I see two buttons with dynamic text.  The first one is call GPRF and has dynamic text VIM_PR_STAT_TXT_CH.  You can find a suitable PBO event to set the text of that function code and if that works, find a suitable PAI event to respond to that function.
    I recall finding some documentation on customizing the GUI STATUS but no luck today trying to find it.
    Let us know how it goes.

  • How to create a ActiveX Object with custom classes

    Hi
    I am trying to create a Active X object for some of the work I have done in Java to be used with VB, but I cannot get the Active X object to generate and it always come up with the following error:
    Exception occurred during event dispatching:
    java.lang.NoClassDefFoundError: uk/co/agena/minerva/model/Model
    at java.lang.Class.getMethods0(Native Method)
    at java.lang.Class.getDeclaredMethods(Unknown Source)
    at java.beans.Introspector$1.run(Unknown Source)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.beans.Introspector.getPublicDeclaredMethods(Unknown Source)
    at java.beans.Introspector.getTargetEventInfo(Unknown Source)
    at java.beans.Introspector.getBeanInfo(Unknown Source)
    at java.beans.Introspector.getBeanInfo(Unknown Source)
    at sun.beanbox.JarInfo.<init>(Unknown Source)
    at sun.beanbox.JarLoader.createJarInfo(Unknown Source)
    at sun.beanbox.JarLoader.loadJar(Unknown Source)
    at sun.beans.ole.Packager.loadBean(Unknown Source)
    at sun.beans.ole.Packager.generate(Unknown Source)
    at sun.beans.ole.Packager.actionPerformed(Unknown Source)
    at java.awt.Button.processActionEvent(Unknown Source)
    at java.awt.Button.processEvent(Unknown Source)
    at java.awt.Component.dispatchEventImpl(Unknown Source)
    at java.awt.Component.dispatchEvent(Unknown Source)
    at java.awt.EventQueue.dispatchEvent(Unknown Source)
    at java.awt.EventDispatchThread.pumpOneEventForComponent(Unknown Source)
    at java.awt.EventDispatchThread.pumpEventsForComponent(Unknown Source)
    at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
    at java.awt.EventDispatchThread.run(Unknown Source)
    This appears to be beacuse the class uk/co/agena/minerva/model/Model is a custom class which is based on the software I am using. Does anyone know how I can get around this issue. I have tried incluijng those class files for the custom classes within the jar file, but I continue to get the same issue?
    Any help would be gratefully received.
    Thanks
    Angie

    This error is no longer coming up, it is now saying that it has an unsupported class version error. I believe this may be because the class file and library files have been complied under different versions, is there a method to check this?

  • Dynamic invocation of javac with custom class path.

    To all the Java Gurus out there,
    Consider the following classes:
    XYZ/test/TestUtil.java
    package test;
    class TestUtil {
      void useMe() {
    }ABC/test/Test.java
    package test;
    public class Test {
      public static void main(String[] args) {
        TestUtil t = new TestUtil();
         t.useMe();
    }The class Test uses package private access to the TestUtil.useMe() method. Then the Test class is packaged into test.jar and the TestUtil class is packaged into testutil.jar.
    Our application uses a custom class loader architecture where the test.jar is loaded by class loader "X" and testutil.jar is loaded by class loader "Y". Also Y is the parent class loader of X. When the main() of Test class is run it results into IllegalAccessException as the package private method is being accessed from different class loaders.
    We are currently using a dynamic way to detect the dependency between test.jar and testutil.jar and generating the classpath argument to the "javac" ant task which dyncamically invokes the sun.tools.javac.Main class. So while compiling Test class the following command line is generated:
    javac -classpath XYZ/testutil.jar Test.java
    It compiles fine assuming that the Test class and the TestUtil class are loaded by the same class loader but at runtime this fails.
    Is there a way to make "javac" use our runtime class loader architecture to instead of static classpath, so that the access violation is captured at compile time?
    Any help is appreciated.
    Ravi
    PS: If this is not the right forum please point me to the right place to post this questions.

    Not that I'm aware of - the Java Language is designed to be platform-independent so absolute file paths which is a specific feature of various file systems would naturally not to be mixed up with the object-oriented hierarchy structure.
    Just like a compiler wouldn't check if a file exists in
    new File("<FilePath>")I don't think you can get compile-time checks for what you have wanted.
    Hope this helps~
    Alex Lam S.L.

  • Replace Standard Class with Custom Class

    Hi,
    I have a query that i need to do changes in Standard Class, but i dont want to do changes Standardly. Is there any other way to replace the Standard Class to Custom Class.
    Please Guide me so that i wont change the Standard Class but i can replace it with "Z" Class.
    Thanks & Regards,
    Harkesh Dang

    Hi,
    I think u will have to go to transaction se24 .select ur class there copy it to a Z class and then make this Z class as the superclass of this.
    Not sure how this Z class will get incorporated in the framework.
    Thanks and Regards
    Shilpi

  • Loading resources with customized class loader

    I have a customized classloader that keeps classes and resources in a table in byte[] form. It works fine as far as loading classes go, I just call defineClass with the byte array corresponding to the class. My problem is how to load resources. I already have the resource data in the table, which you'd think would be a good thing, but the method that has to be overridden (getResource or findResource) is supposed to return an URL to the resource. The only way I can think of to do that is to write the data to a file and return an URL to that file, but I don't even wanna touch that solution with a nine foot stick. Surely there must be a better way!?

    Usually, when your resources are in a custom source, you create and implement your own URL protocol (like jar:). This is done by creating your own java.net.URLStreamHandler and java.net.URLConnection implementations. You can peruse the jar implementation in sun.net.www.protocol.jar as a good example.
    Once you have your own protocol that knows how to get to your resource file and how to identify and extract a resource, you simply use that protocol in the URLs returned by your ClassLoader. The resource URLs can then be used as you would normally use any URL.
    A tutorial describing how all of this works, and how to implement your own is at:
    http://developer.java.sun.com/developer/onlineTraining/protocolhandlers/
    I hope you find this of some help.

  • Don't get WCF with custom Class working

    Hey
    I am starting with playing around with WCF. But I don't get it working. I can't see my Problem and this since a few days...
    So, I will explain in Detail, what I did so far.
    I created a blank ASP.NET Project (VS 2013)
    Within I created 2 files
    The first file is the Contract Interface
    mports System.ServiceModel
    Namespace DataClasses
    <ServiceContract> _
    Public Interface ITestService
    <OperationContract> _
    Function ReturnClass() As List(Of TestDataClass)
    End Interface
    End Namespace
    Ok, the second is the TestDataClass
    Imports System.Data.Services.Common
    Imports System.Runtime.Serialization
    Namespace DataClasses
    <Serializable> _
    <DataContract> _
    Public Class TestDataClass
    <DataMember> _
    Public Property Id As Long
    <DataMember> _
    Public Property Firstname As String
    <DataMember> _
    Public Property Lastname As String
    End Class
    End Namespace
    Ok. - The next Thing, I was doing is to create the "returning" information
    Imports System.ServiceModel.Web
    Namespace Proxy
    Public Class TestData
    Implements DataClasses.ITestService
    Public Function ReturnClass() As List(Of DataClasses.TestDataClass) Implements DataClasses.ITestService.ReturnClass
    Dim retList As New List(Of DataClasses.TestDataClass)
    retList.Add(New DataClasses.TestDataClass With {.Firstname = "My", _
    .Id = 2, _
    .Lastname = "Name"})
    Return retList
    End Function
    End Class
    End Namespace
    Ok - So far, as I understood, This should be all correct. (I hope)
    The next, I did was to add a WCF Data Service 5.6 file
    Within this file I changed the code to this:
    Imports System.Data.Services
    Imports System.Data.Services.Common
    Imports System.Linq
    Imports System.ServiceModel.Web
    Public Class DataModelWcf
    Inherits DataService(Of Proxy.TestData)
    ' This method is called only once to initialize service-wide policies.
    Public Shared Sub InitializeService(ByVal config As DataServiceConfiguration)
    config.SetEntitySetAccessRule("*", EntitySetRights.AllRead)
    'config.SetServiceOperationAccessRule("*", ServiceOperationRights.All)
    config.DataServiceBehavior.MaxProtocolVersion = DataServiceProtocolVersion.V2
    End Sub
    End Class
    OK. - When I now test the Service by clicking on it and run in browser, I get the following:
    <?xml version="1.0" encoding="UTF-8" standalone="true"?>
    -<service xmlns="http://www.w3.org/2007/app" xmlns:app="http://www.w3.org/2007/app" xmlns:atom="http://www.w3.org/2005/Atom" xml:base="http://localhost:1523/DataModelWcf.svc/">
    -<workspace>
    <atom:title>Default</atom:title>
    </workspace>
    </service>
    OK - The Service itself runs. - But I don't get any "Operation". I can't see my failure. - I tested around for the last few days, but I don't have a Clou, what's wrong...
    I also added a Service into the config file (but don't think, that this will make some differences)
    <system.serviceModel>
    <services>
    <service name="WCF_Test.Proxy.TestData">
    <endpoint address="" contract="WCF_Test.DataClasses.ITestService" binding="basicHttpBinding"/>
    <endpoint address="mex" contract="IMetadataExchange" binding="mexHttpBinding"/>
    </service>
    </services>
    <serviceHostingEnvironment aspNetCompatibilityEnabled="true" />
    </system.serviceModel>
    So, thanks for every Little hint to solve this.
    THX - Have  nice Weekend!

    Hello Zero-G. _,
    >> But I don't get any "Operation". I can't see my failure. - I tested around for the last few days, but I don't have a Clou, what's wrong...
    I am afraid that you have mixed the WCF and WCF Data Service, here is a WCF Service example(it works with the Entity Framework while it is not WCF Data Service):
    http://www.codeproject.com/Articles/127395/Implementing-a-WCF-Service-with-Entity-Framework, please check it, in your case, you are use this mode and you do not need to create WCF Data Services.
    If you want to write a custom method in WCF Data Service, you could refer to this link:
    https://msdn.microsoft.com/en-us/library/dd744841(v=vs.110).aspx, as you can see, although if we declare a custom method, it would not show in the web browser, we call it as adding
    the method after the based service link directly:
    http://localhost:12345/Northwind.svc/GetOrdersByCity
    Or call it by using a client project which could detect this method and call it as in this blog:
    http://blogs.msdn.com/b/dataaccesstechnologies/archive/2009/12/01/way-to-expose-custom-method-in-an-entity-class-from-wcf-data-service.aspx
    Regards,
    Fred.
    We are trying to better understand customer views on social support experience, so your participation in this interview project would be greatly appreciated if you have time. Thanks for helping make community forums a great place.
    Click
    HERE to participate the survey.

  • Std::list::sort() doesn't work with custom class

    The following example doesn't order a list the way I'd expect. Is this being done wrong? Sun Studio 12 (not update 1). Current patches as of Monday.
    #include <list>
    class CMyClass
    public:
    CMyClass(long a) : m_Sec(a) { }
    bool operator<(const CMyClass* rhs)
    return (m_Sec < rhs->m_Sec);
    long m_Sec;
    typedef std::list<CMyClass*> TLogList;
    int
    main(int argc, char* argv[])
    TLogList logList;
    CMyClass* name = new CMyClass(0x4A833E79);
    logList.push_back(name);
    name = new CMyClass(0x4A85E144);
    logList.push_back(name);
    name = new CMyClass(0x4A85E66F);
    logList.push_back(name);
    name = new CMyClass(0x4A85E66F);
    logList.push_back(name);
    name = new CMyClass(0x4A85B2C2);
    logList.push_back(name);
    name = new CMyClass(0x4A85D6EF);
    logList.push_back(name);
    name = new CMyClass(0x4A69F9AD);
    logList.push_back(name);
    name = new CMyClass(0x4A85DC92);
    logList.push_back(name);
    name = new CMyClass(0x4A817316);
    logList.push_back(name);
    name = new CMyClass(0x4A85DEEB);
    logList.push_back(name);
    name = new CMyClass(0x4A846329);
    logList.push_back(name);
    name = new CMyClass(0x4A85E39D);
    logList.push_back(name);
    name = new CMyClass(0x4A85D41D);
    logList.push_back(name);
    name = new CMyClass(0x4A89CC17);
    logList.push_back(name);
    name = new CMyClass(0x4A85DC19);
    logList.push_back(name);
    logList.sort();
    TLogList::iterator logListIter = logList.begin();
    TLogList::iterator logListEnd = logList.end();
    for (; logListIter != logListEnd; ++logListIter)
    CMyClass* name = *logListIter;
    cout << hex << name->m_Sec << endl;
    return 0;
    which produces
    4a833e79
    4a85e144
    4a85e66f
    4a85e66f
    4a85b2c2
    4a85d6ef
    4a69f9ad
    4a85dc92
    4a817316
    4a85deeb
    4a846329
    4a85e39d
    4a85d41d
    4a89cc17
    4a85dc19

    The program as you wrote it will sort the contents of the list. The list consists of the addresses of CMyClass objects, and after sorting, will contain those addresses in sorted order.
    If you want to sort by the contents of the classes that are pointed to, you need to provide a comparison operator that compares the contents, and use the other form of the list::sort function that takes a comparison function as an argument. That is, add the function
    bool comp(const CMyClass* l, const CMyClass* r)
       return l->m_Sec < r->m_Sec;
    }and change
    logList.sort(); to
    logList.sort(comp); This version of list::sort will not compile using the default libCstd, because it requires member templates in the library implementation. For more information about this limitation, refer to the C++ FAQ section on library compatibility.
    [http://developers.sun.com/sunstudio/documentation/ss12u1/mr/READMEs/c++_faq.html#LibComp]
    The revised code will compile with the optional STLport library, or with other 3rd-party libraries like Apache stdcxx. To use STLport, add the option -library=stlport4 to every CC command, compiling and linking. You cannot mix code compiled for the default libCstd with STLport code in the same program.

  • Need help calling and looping custom classes

    Hi, I am writing a code with custom classes in it and another program that calls upon all of the classes in the first program. I can get the second one (L6) to call upon and execute all of the classes of the first (Foreign). However, I need the second one to loop until quit is selected from the menu on Foreign and I can't seem to figure out how to do it. Here are the codes:
    L6:
    public class lab6
    public static void main(String[] args)
    Foreign camount = new Foreign();
    camount = new Foreign();
    camount.get();
    camount.print();
    camount.intake();
    camount.convert();
    camount.vertprint();
    System.out.println(camount);
    Foreign:
    import java.util.Scanner;
    public class Foreign
    private String country;
    private int choice;
    private float dollars;
    private float conversionValue;
    private float conversionAmount;
    public Foreign()
    country = "null";
    choice = 0;
    dollars = 0;
    conversionValue = 0;
    conversionAmount = 0;
    public void get()
         Scanner Keyboard = new Scanner(System.in);
              System.out.println("Foreign Exchange\n\n");
    System.out.println("1 = U.S. to Canada");
    System.out.println("2 = U.S. to Mexico");
    System.out.println("3 = U.S. to Japan");
    System.out.println("4 = U.S. to Euro");
    System.out.println("0 = Quit");
    System.out.print("\nEnter your choice: ");
    choice = Keyboard.nextInt();
    public void print()
    System.out.print("\nYou chose " + choice);
    public void intake()
         Scanner Keyboard = new Scanner(System.in);
              if (choice >= 1 && choice <= 4)
    switch (choice)
              case 1: System.out.println("\nU.S. to Canada");
                        conversionValue = 1.1225f;
                        country = ("Canadian Dollars");
                        break;
              case 2: System.out.println("\nU.S. to Mexico");
                        conversionValue = 10.9685f;
                        country = ("Mexican Pesos");
    break;
              case 3: System.out.println("\nU.S. to Japan");
                        conversionValue = 118.47f;
                        country = ("Japanese Yen");
    break;
              case 4: System.out.println("\nU.S. to Euro");
                        conversionValue = 0.736377f;
                        country = ("European Union Euros");
    break;
                   System.out.print("\nEnter U.S. dollar amount: ");
              dollars = Keyboard.nextFloat();
    public void convert()
    conversionAmount = conversionValue * dollars;
    public void vertprint()
    System.out.println("\nCountry = " + country);
    System.out.println("Rate = " + conversionValue);
    System.out.println("Dollars = " + dollars);
    System.out.println("Value = " + conversionAmount);
    public String toString()
    String line;
    line = "\n" + country + " " + conversionValue + " " + dollars + " " + conversionAmount;
    return line;
    I appreciate any help anyone can give me. This is driving me crazy. Thanks.

    1. first you need to write method to get choice value from Foreign class.
    simply add this method.
       public class Foreign {
          // ... Add this
          public int getChoice() {
             return choice;
       }2. Then in your main, you can obtain with previos method.
    public static void main(String[] args) {
       Foreign camount = new Foreign();
       // remove this. you alredy create an instance in last statement.
       //camount = new Foreign();
       int choice = 0;
       do {
          camount.get();
          choice = camount.getChoice();
          // your process...
       } while (choice != 0);
    }

  • Referencing between custom classes

    Hi,
    I need some help with the theory of referencing between custom class files.
    I have not worked much with custom classes before, but want to learn more.
    Is it possible to call for a function in one custom class file from another custom class file?
    The files are in the same package (folder).
    The first custom class is the one stat starts all the main activities on the movie clip when it is added to the stage.
    One of the activities it should start, is starting to add some movie clips to the stage.
    I would like to initiate that activity in the first custom class file, but have the detailed code (where, what and when to add) in another custom class file.
    Is that possible? When yes, how should it be referenced?
    Many thanks in advance!

    Hi,
    Thank you all for your replays.
    Got some new terminology – Singelton, Setters and Getters.
    Have not come across before:)
    I do know the inheritance and have used it. And my little experience with it told me as well – it’s something you shouldn’t go crazy or fanatic with. Overusing it makes things complicated.
    Amy, what you descibed is how I normally do use the classes – attach them to the Library symbols.
    In my question I meant one concrete Movie Clip which is one sub-part of the application.
    The Movie Clip is just an animated picture. That Movie Clip (girlSwim) is attached to the base class GirlSwim.
    And that class is at the moment handling the animation for that girl swimming. It would be good to have that code on a sub-level symbol, like the Girl, but as a mask is swimming along as well, it got too complicated for me to code, cross reference the nested symbols. So the code ended up on top level symbol.
    In that Movie Clip are other animating symbols as well and they are all handled with other custom classes.
    When the girlSwim Movie Clip is activated, it’s on screen, dragonflies start to fly in and fishes start to swim in as well. They are not on the original picture, so not on stage.
    And adding them is managed with timers and it continues as long as the Movie Clip is on screen.
    At the moment I have all the stuff related to dragonflies and fishes on the first keyframe.
    And it all functions nicely.
    But as I’m practicing now using class files and keeping my timeline action script free (except some stop and goto staff to handle the timeline animations), I want to get that part of the code into class file as well.
    I could but it all into the class GirlSwim and it would function.
    But as the animation code for the girl is long enough, I though it would be good to have the code for dragonflies and fishes separate.
    But it needs to be initiated by the GirlSwim class.
    So … in my little-simple world I thought the following could work .. but it didn’t:)
    1180: Call to a possibly undefined method timerStartDragonflies.
    package
    public class GirlSwim extends MovieClip
          public function GirlSwim()
               timerStartDragonflies ();
    package
    public class Dragonflies extends MovieClip
    public function Dragonflies ()
                                    //empty
                    internal function timerStartDragonflies():void
                                   //code for starting timer
                    etc.
    Is something like that possible or should I put it all into the GirlSwim class?

  • Custom classes, Help!

    hi every one,
    i really need help with custom classes, i just dont
    understand how to work with them. Can someone give me a small
    tutorial on how to write them, where to save them, and how to use
    them in another file.
    thank you very much

    search using google.

  • Build app with ODT and Oracle UDT - Error while creating custom class

    Hello CShay,
    I am testing you sample code to create UDT with ASP.Net app. It is also published in Oracle magazine.
    The article is also published at following link:
    http://www.oracle.com/technology/oramag/oracle/08-may/o38net.html
    I am able to successfully implement all the steps before "Using Custom Class Wizard". When I right click on any of the object (CUSTOMER_OBJ, PHONELIST_OBJ, and ADDRESS_OBJ) and select Generate Custom Class, I get the following error:
    Oracle custom class wizard.
    Class can be generated only for either C#, VB or Managed C++ projects.
    Am I missing any thing?
    Thanks in advance for your help.

    Yes I confirm that I choose File->New Website.
    I don't see the following option
    File -> New Project, and then under Visual C#, select ASP.NET Web Application
    I am using VS2005 Professional Edition.
    The options I see under Visual C# are:
    If I click on
    Windows tab:
    Windows Application
    Windows Control Library
    Console Application
    Empty Project
    Class Library
    Web Control Library
    Window Servcie
    Crystal Report Application
    and Search Online Templates in My Templates tab.
    Couple of options for Smart Device which also doesn't include ASP.Net
    then Database, Starter kits and Office tabs which also doesn't include ASP.net thing.
    I don't know how did you see that option or you might be using different version of VS (Enterprise).
    But right now I am stuck.
    Please provide me your valuable comments.
    Thanks for your help.

  • How to make set up with first call of method of a custom class?

    Hello
    I have build a custom class with a few custom methods.
    Method1 is called per every record of internal table. I need to set up certain parameters tha are the sme for all the calls  (populate the range , to fill the internal table , etc). This should be done only once.
    call method ZBW_CUSTOM_FUNCTIONS=>METHOD1
            exporting
              I = parameter1
            importing
              O = parameter2.
    Loop at ....
       <itab>-record1 = parameter2
    endloop.
    Methods2, 3 , 4 dont need any set up.
    Can somebody tell me how to do it within class?
    Thanks

    Instance methods (as opposed to static methods) are called on an object, which is an instance of a class. Broadly, think of the class as a template for the creation of objects. The objects created from the class take the same form as the class, but have their own state -- their own attribute values. In pseudo-ABAP (this won't even close to compile), let's say you have the following class:
    CLASS cl_class.
         STATICS static_attr TYPE string.
         DATA attr1 TYPE string.
         DATA attr2 TYPE i.
         CLASS-METHOD set_static_attr
              IMPORTING static_attr TYPE string.
              cl_class=>static_attr = static_attr.
         ENDMETHOD.
         METHOD constructor
              IMPORTING attr1 TYPE string
                                 attr2 TYPE i.
              me->attr1 = attr1.
              me->attr2 = attr2.
         ENDMETHOD.
         METHOD get_attr1
              RETURNING attr1 TYPE string.
              attr1 = me->attr1.
         ENDMETHOD.
    ENDCLASS.
    When you create an instance of the class (with CREATE OBJECT oref), the constructor is implicitly called. You can pass parameters to the constructor using: CREATE OBJECT oref EXPORTING attr1 = 'MyString' attr2 = 4.
    You then call methods on the instance you have created. So, oref-&gt;get_attr1( ) would return 'MyString'.
    The constructor is called when the object is created (so, when you call CREATE OBJECT). At this time, the setup is done, and any subsequent methods you call on the object will be able to use the attributes you set up in the constructor. Every object has its own state. If you had another object, oref2, changing its instance attribute values would not affect the values of oref.
    Static methods and attributes are different. A static attribute exists only once for all instances of the class -- they share a single value (within an internal session, I think. I'm not sure of the scope off-hand.) You also call static methods on the class itself, not on instances of it, using a different selector (=&gt; instead of -&gt;). So, if you called cl_class=&gt;set_static_attr( static_attr = 'Static string' ), 'Static string' would be the value of static_attr, which belongs to the class cl_class, and not instances of it. (You can also set up a class constructor, which is called when the class is loaded, but that's another subject.)
    To answer your question more succinctly: no, the constructor is not called before each method. It is only called when you create the object. Any subsequent methods called on the object can then access its attributes.
    Please have a look at [http://help.sap.com/saphelp_nw70ehp2/helpdata/en/48/ad3779b33a11d194f00000e8353423/frameset.htm] for a more thorough treatment of basic object concepts. (The rest of that documentation is very thin, but it'll get you started. Also, it doesn't appear to deal with statics. You'll have to look elsewhere for that.)

  • Unit testing: Mocking custom classes with null

    Hi,
    I was trying to save time on testing the usual hashCode() and equals() methods so I got this class: http://www.cornetdesign.com/files/BeanTestCase.java.txt
    I altered it a bit as it wasn't handling standard classes only primitives.
    Anyway, I got to the point to include my own custom classes.
    I have to create a 'mock' object for my class properties, e.g. field.getType().newInstance()
    Fine, but there are some tricky instances. E.g. when I'd like to create an instance of java.net.URL which takes a URL as String in the constructor.
    This is almost impossible to automate as it has to be a valid URL format not just a random String.
    So, I thought I set them to null, e.g.
    assertTrue(o1.equals(o2))
    as both properties are null.
    Is this the right approach you think?
    I welcome any suggestions.
    My initial idea was to save enormous amount of time automating the hashCode() and equals() method tests as they took so long to write.
    Thanks

    Trouble would be that you are only testing the null branch of the equals or hashCode, which typically have to check for null, then if not null do an actual comparison.
    It's worth the effort of learning to use a package such as EasyMock to create and program mock objects. It's tidiier if you are progamming to interfaces, however, but it will mock ordinary objects, though probably not if they are final.
    What you could do is to define a factory interface, and have a table of anonymous classes wich generate various types. In effect create a library of dumy object factories.
    Something like:
    private interface DummyGenerator {
          Object generate(int idx);
          Class<?> getType();
    private final static DummyGenerator[] generatorsTable {
        new DummyGenerator() {
               public Object generate(int idx) {
                 return new URL("http://nowhere.com/" + idx);
         public Class<?> getType() { return URL.class; }
    .. generators for other classes
    private final static Map<Class<?>, DummyGenerator> genMap = new HashMap<Class<?>, DummyGenerator>(generatiorsTable.length);
    static {
        for(DummyGenerator gen : generatorsTable)
            genMap.put(gen.getType(), gen);
    }

Maybe you are looking for

  • Solaris 10 x86 b63 USB keyboard issue

    Hello. I am trying to install Solaris 10 x86 on a Dell Optiplex SX280. The system uses a USB keyboard and mouse. When asked as to the type of installation to perform (1 - Interactive, 2 - JumpStart, 3 - Text Only), I select 1, then the system start b

  • Install error when confgure Database

    I am installing 11.1.2.1 and these are the item that are failed Foundation Services Register with Shared Service Essbase Studio Register with Shared Service Essbase Administration Serices Register with Shared Service Essbase Register with Shared Serv

  • Javascript error when loading Portal Content

    I used "NW04 SP16 sneakpreview". Installation went fine but I can't seem to get anything in my portal content PCD. Below on the left I have Javascript errormsg which states the following: Line: 90 Char: 3 Error: 'undefined' is null or not an object C

  • How to drag and drop image between Windows platform and VM

    Thanks.

  • Transactions are displayed as Garbage values in TH language

    Hi All, Please help with my below problem. Users when loggin in to Th language are seing garbage values against Transaction names in Menu. I tried to check the role which is giving this acess in TH language and it gave the below message when i  displ