text:
Neon tetra

The neon tetra (Paracheirodon innesi) is a freshwater fish of the characin family (family Characidae) of order Characiformes. The type species of its genus, it is native to blackwater and clearwater streams in the Amazon basin of South America. Its bright colouring makes the fish visible to conspecifics in the dark blackwater streams, and is also the main reason for its popularity among freshwater fish hobbyists, with neon tetras being one of the most widely kept tropical fish in the world.

Range and habitat
The neon tetra is found in the western and northern Amazon basin in southeastern Colombia, eastern Peru, and western Brazil. It lives in waters with a temperature between 20 and(-) and pH 4–7.5. It has a preference for acidic blackwater streams, but also occurs in transparent clearwater streams. It is not found in the whitewater rivers. UN FAO considers P. innesi an introduced species in Singapore and the United States. FAO considers its introduction to Singapore to be ecologically and socioeconomically beneficial, but it is not established there.

Description
The neon tetra has a light-blue back over a silver-white abdomen. The fish is characterized by an iridescent blue horizontal stripe along each side of the fish from its nose to the base of the adipose fin, and an iridescent red stripe that begins at the middle of the body and extends posteriorly to the base of the caudal fin. The fish is partially transparent (including fins) except for these markings. Sexual dimorphism is slight, with the female having a slightly larger belly, and a bent iridescent stripe rather than the male's straight stripe. During the night, the blue and red become gray or black as the fish rests. It reactivates once it becomes active in the morning. This peculiar change is due to the neon tetras capacity to change the color of its iridescent stripe in response to lighting conditions. In a light-adapted state it is blue-green, likewise in a dark-adapted state its color changes to indigo. This change is produced by guanine crystals in their cells that reflect light. The neon tetra grows to approximately 4 cm (1.5 in) in overall length.

Economics
The neon tetra was first imported from South America and was described by renowned ichthyologist George S. Myers in 1936, and named after William T. Innes. P. innesi is one of the most popular aquarium fish, with about 2 million sold in the US each month. Most neon tetras available in the United States are imported from Southeast Asia, where they are farm-raised, or to a lesser extent from Colombia, Peru, and Brazil, where they are collected from the wild. During a single month, an average of 1.8 million neon tetras with an estimated value of $175,000 are imported into the United States for the aquarium trade. With the exception of home aquarists and a few commercial farms that breed neon tetras experimentally, captive breeding on a commercial scale is nonexistent in the USA.

In the aquarium

In the wild they inhabit very soft, acidic waters (pH 4.0 to 4.8) Ideal pH for aquarium is 7.0, but a range of 6.0 to 8.0 is tolerable. They can have a lifespan of as long as ten years, but normally just two to three years in an aquarium.

Neon tetras are considered easy to keep in an aquarium of at least 10 USgal with a temperature range of between 72 - 76 F, a water pH of between 6.0 and 7.0, GH of below 10 dGH and KH of 1-2 dKH, and under 20 ppm of nitrate.

They are shoaling fish and must be kept in groups of at least six, but will be more active in groups of eight to 12 or more. Neon tetras are best kept in a densely planted tank to resemble their native Amazon environments.

Nutrition
Neon tetras are omnivores and will accept most flake foods, if sufficiently small, but should also have some small foods such as brine shrimp, daphnia, freeze-dried bloodworms, tubifex, which can be stuck to the side of the aquarium, and micropellet food to supplement their diets. A tropical sinking pellet is ideal, as most brands of these include natural color enhancers that bring out the color in neon tetras. Some frozen foods, including frozen blood worms, add variety to their diets.

Breeding

The male is slender, and the blue line is straighter. The female is rounder, producing a bent blue line. Some aquarists say the females look plumper when viewed from above. However, the straightness of the line and the plumpness of the female might occasionally be due to the eggs she is carrying. A neon tetra can appear slightly plump in the belly due to having overeaten.

Neon tetras need dim lighting, a DH less than one, about 5.5 pH, and a temperature of 75 F to breed. There also needs to be a lot of tannins in the water. Neon tetras are old enough to breed at 12 weeks.

Breeding neon tetras is considered to be difficult in home aquariums. However, it is becoming more common, with less than 5% of specimens currently sold in America caught in the wild, and more than 1.5 million specimens imported to America each month from fish farms.

Disease
Neon tetras are occasionally afflicted by the so-called "neon tetra disease" (NTD) or pleistophora disease, a sporozoan disease caused by Pleistophora hyphessobryconis. Despite being a well-known condition, it is generally incurable and often fatal to the fish. However this disease is also generally preventable. The disease cycle begins when microsporidian parasite spores enter the fish after it consumes infected material, such as the bodies of a dead fish, or live food such as tubifex, which may serve as intermediate hosts. The disease is most likely passed by newly acquired fish that have not been quarantined.

Symptoms include restlessness, loss of coloration, lumps on the body as cysts develop, difficulty swimming, curved spines as the disease progresses, and secondary infections, such as fin rot and bloating.

A so-called "false neon disease", which is bacterial, shows very similar symptoms. It is impossible for the home aquarist to determine for certain the difference between NTD and false NTD on the basis of visible symptoms alone, without laboratory backup. This disease has also been confused with columnaris (mouth rot, mouth fungus, 'flex').

Generally the best 'treatment' is the immediate removal of diseased fish to preserve the remaining fish, although some occasional successful treatments have been performed that include fish baths and a "medication cocktail". The use of a diatom filter, which can reduce the number of free parasites in the water, may help. As with Pleistophora neon tetra disease, prevention is most important and this disease is rare when good preventive measures are performed.

Related species

The green neon tetra (P. simulans) and black neon tetra (Hyphessobrycon herbertaxelrodi) are distinct species—the latter belongs to a different genus—and not color varieties. The cardinal tetra (P. axelrodi) is also a similar species, but its greater extent of red coloring distinguishes it from the neon tetra. The name Hyphessobrycon innesi is an obsolete synonym for P. innesi.

title: Neon tetra


text:
Talk:Class (object-oriented programming)

Maybe one of you can answer a question that poped into my mind. English isn't my first language so bear with me. When you instantiate a class each instance gets its own set instance fields, but what about methods? Are method definitions copied for each instance? Or are method calls to various instances all looked up from a common definition? And if they are copied for each instance isn't that rather well...wasteful?

why abstract classes are used?
 * Same reason you use interfaces.

Wouldn't class (computer science) or class (programming) be better article names? More concise, and hence better... Martin

I would like class (computer science), however pretty much everything here is XXXX in object-oriented programming and I didnt want to get into an edit war over it. Vera Cruz

Sorry. Class (object-oriented progamming) was more correct than Class (computer science) as you could be referring to Windows classes or any many other uses of the the term class not directly connected to OOP. Mintguy

 * What's a windows class? Never heard of that - the only use of class I've heard in computer science is in relation to OOP... Martin

 * In the Windows OS a Windows class is a deinition of a type of window. completely unrelated to OOP as Windows is programmed in C and not C++ Mintguy

 * Fair dos: I typically use MFC, which would explain why I've not heard of it. Martin

 * If you use MFC you should have come across Windows classes. They are fairly fundamental. Look up WNDCLASS in Help. Mintguy

-- I think the article should be named class (computer science) because -- Taku 18:37 18 May 2003 (UTC)
 * ordinary people don't know what is an object-oriented programming
 * class can be used not just in OO programming but OO design or so on
 * class used in windows is not covered by computer science, thus, there is no conflict

If they click on object-oriented programming theey will find out what it is. OO programming is the implementation of OO design. Are you saying that the Microsoft Windows Win32 API is NOT covered by Computer science? Mintguy 18:47 18 May 2003 (UTC)

 * Technically I think so. I mean I am talking about context. If you bought a textbook say compiler used in computer science, I am sure class in the book doesn't mean window class. Besides, window class in windows API is a sense of OOP. Either the title of the article is class (object-oriented programming) or class (computer science), it really doesn't matter. Also, remeber all of articles in wikipedia are for general audience, which means each article need to be written as little as possible technical jagons. Also, OO design is not always implemted by OO programming. It's just a typical case. -- Taku 18:54 18 May 2003 (UTC)

 * "Because windows API is originally designed as object-oriented way, each window is defined by class called window class. But because computer powers in the time the API was designed are so low, many people claim window class is in reallity not a object-oriented at all."

 * The above is gramatically incorrect. Please find me a single reference that states that Windows 1.0 or Windows 2.0 or Windows 3.0 were originally designed to be object-oriented. Mintguy 03:36 19 May 2003 (UTC)

 * I will (give me some moment) but for example, what is your idea about why window class is named as class? -- Taku 03:53 19 May 2003 (UTC)

 * Because the word class existed in the English language long before anyone thought of OO. Because it means a similar thing to type and because it was a suitable word to use to describe a structure used to type or classify a windowMintguy 04:07 19 May 2003 (UTC)

 * 24 hours have passed So I'm removing the inaccurate sentence. Mintguy 21:34 19 May 2003 (UTC)

Looks we have an edit war starting here. I'll add my two bullets. The Windows API is object oriented. You can do object oriented programming in languages such as C (GTK does it). The Windows class (HWND) has properties (GetWindowText, SetWindowText) and methods (ShowWindow). It is OOP, just not written in an OOP language. CGS 22:11 20 May 2003 (UTC).

ARghhh...... rubbish. HWnd is a handle to a Window. It is not a WNDCLASS. Mintguy 22:33 20 May 2003 (UTC)

Yes HWnd is a pointer to a Window's structure. Like any object reference. WNDCLASS is a pointer to a Window object. All object references (be they structures or classes) are pointers. Handle == internal pointer in the Windows API. CGS 14:56 21 May 2003 (UTC).

WNDCLASS structure is used to create a window. A hWnd isn't a pointer to an object of type WNDCLASS. Even if it was, this still doesn't equate to object-orientation. Once you've create your window you can throw the WNDCLASS away. Mintguy

 * Needless to say, your definition and CGS's definition of OOP varies. That's all.

 * My definition? You mean the definition. You still don't seem to have grasped the difference between object-oriented and object based. Mintguy 15:09 21 May 2003 (UTC)

Again you just use your definition, which is not universally accepted. Do you think I and CGS are exceptional people? -- Taku 15:16 21 May 2003 (UTC)

 * OK Taku if it is not universally accepted please show me a site which states that using objects without inheritance is still object-oriented. Mintguy 15:22 21 May 2003 (UTC)

So that's why I told you give me some moment. I am now doing research about the strict definition of OOP. I will probably rewrite an entirely object-oriented programming article at first. As we see, there is certain confusion related to OOP. Maybe it is because I have a superficial knowledge or some other reasons. Anyhow, it should be worth to discuss this kind of confusion in actual article. What we want to is not either you are right or wrong or I am right or wrong. -- Taku 15:32 21 May 2003 (UTC)

 * As far as I can see the only confusion is in your head. Wake up and smell the coffee. AFAIK everyone else in the world accepts that objects without inheritance is "object based" like previous incarnations of VB and Delphi etc.. Mintguy 15:40 21 May 2003 (UTC)

 * Everyone?? I guess except people other you here. -- Taku 16:18 21 May 2003 (UTC)

 * CGS has made no statment about the use of inheritance. You are the only one suggesting that OOP doesn't require inheritance. Mintguy 16:25 21 May 2003 (UTC)

 * Taku. From a random page on the web http://www.wamoz.com/js_is_oo.asp "What does object-oriented mean? Indisputably it means possessed of the qualities of an object-oriented programming language. Since the only quality I can find common to all languages touted as object-oriented programming languages (OOPLs) - and unique to languages so touted - is inheritance...."

 * Another .. http://www.6thcolumn.org/~cue/nyu/java_one/Introduction_LectureNotes_p2.html "Any language that claims to be Object Oriented must have the following characteristics: Classification; Identity; Inheritance; Polymorphism."

 * and again ... http://msdn.microsoft.com/msdnmag/issues/01/11/Instincts/default.aspx "Inheritance has long been considered by many as one of the most significant design features of object-oriented programming (OOP)."

 * I can find a million similar examples. And you can't find a single counter-example. Mintguy 16:39 21 May 2003 (UTC)

Because you are searching and I am not spending time for searching yet. Anyway, stop trying to disprove each other. -- Taku 19:09 21 May 2003 (UTC)

 * Quick google search shows me this article. http://research.microsoft.com/Users/luca/Slides/1996-05%20Class-based%20vs%20Object-based%20Languages%20(PLDI%20Tutorial).pdf. If I missed your point, forgive me. I still don't have much time to look at the termiology or history of OOP. -- Taku 22:33 21 May 2003 (UTC)

 * And this one: http://sern.ucalgary.ca/courses/SENG/609.03/W98/jyzhu1/review.html

I learned there is a notion that object-based langauges are not good enough classified as OOP but it seems still argued. -- Taku 22:49 21 May 2003 (UTC)

 * I propose how about the article named Object theory instead of Object-oriented programming? Or we can have two separate articles. -- Taku 22:50 21 May 2003 (UTC)

 * Taku I take it this is your evidence above. The first one is titled "Object based vs. class based" and it states for object based languages "object generation can be written as procedures but with no real notion of inheritance"- which is EXACTLY the point I'm trying to make. You second link is a DEAD link. Mintguy 02:12 23 May 2003 (UTC)Mintguy 02:06 23 May 2003 (UTC)

See talkpage of inheritance. Sorry about the second dead link, it says (from my cache):
 * Object-based languages are another form of object-oriented language, in which there  is no class and individual objects can be created by some constructs.   Some features of the object-oriented languages are also discussed in [Abadi  1996].

-- Taku 02:40 23 May 2003 (UTC)

 * Taku. There are object-oriented languages without classes see self programming language as an example. But self is object-oriented because it offers up the concept of inheritance and polymorphism. Without these you don't have object-orientedness. To distinguish those languages that have objects as holders of data and/or behaviour but do not offer up features of the OO paradigm the term object based is pretty much universally used. Now it is possible to mimic object-oriented programming features in both procedural and object-based languages, but that doesn't make them object-oriented. Now these are difficult concepts and it is understandable that a few people do not follow the general principle of distinguishing the features of Object-oriented and object based, but the vast majority of the programming world do. I think it only sensible that Wikipedia do the same. We should have an article on object based programming or object theory if you like, but the correct term for the concept that involves OO principles is OO. Mintguy 03:16 23 May 2003 (UTC)

Accuracy disputed
The article contains the statement that "the Microsoft Windows API was originally designed in an object-oriented way". This is inaccurate. The Windows API was designed in 1983 a structured programming way. OOP includes the concept of structured programming but is not the same as structured programming. Rather, it's one implementation and derivative of structured programming. That's probably why some believe it is OOP when it's actually structured proramming. As requested above in previous discussion above, please support the claim of "originally designed" in an object-oriented way, rather than in a structured programming way.

 * I don't because the situation is dispute over the definition of object-oriented programming. Some agree with me and disagree and some people agree with you and disagree. Wikipedia is not a place to decide which side is right and wrong. -- Taku 03:42, Oct 25, 2003 (UTC)

Do you see the distinction between the concepts of structured programming and object-oriented programming? Do you perceive every use of structured programming to be a use of OOP concepts rather than a use of structured programming concepts? JamesDay 10:28, 25 Oct 2003 (UTC)

James Day has asked for my input here, but I'm not sure I can add very much. A few minor things: IIRC, in Win 9x and probably a few others, an HWND is a 16-bit index into an array of internal structures, cast to a 32-bit void pointer for the purposes of obfuscation. A window class has more in common with the English word "class" than the C++ concept. However, the Windows API does have the concept of an "object", which is reasonably similar to the C++ concept. There is a section on it in the SDK. Microsoft went to some pains to categorise objects, and to implement common functions which work on a number of different types of object. At a stretch, this could be called polymorphism.

The Windows API is not what I would call object oriented, and so for the most part I agree with Mintguy not Taku. But I haven't read very much on the matter so I wouldn't know if the definition varies. My understanding of object-oriented programming is where each function is strictly associated with a certain kind of data. Very few if any functions are "global", and the class to which a function belongs is never ambiguous. The Windows API has many "global" functions which are not associated with a class, and the categories Microsoft uses for its functions do not strictly coincide with the type of the first argument passed. -- Tim Starling 11:58, Oct 25, 2003 (UTC)

 * So you want me to address what I think OOP is so I do. As a concept, OOP is a paradigm that lets programmers to think about programming in terms of objects--those are capable of receiving and sending messages. Each object can be created from a class or a existing object or via other means. To me, inheritance, polymorphism and encapsulation are not essential. They are very useful extensions for OOP programming but the lack of them doesn't make programming competely non-OOP automatically. For example, Object Pascal didn't have access control such as private or public seen in C++ or Java. But it was still designed in the concept of OOP. GTK and GNOME api, for instance perfectly adapt OOP concepts but it is still written in C. The important distinction between structured programming and OOP is that the view how programmers see their programs. OOP language features are not foundamental. Some people assert that OOP is a mere extension where some functions known as methods are bound to a composite type. It is just an implementation choice. OOP doesn't need to be procedural. Procedural programming can adapt OOP but OOP doesn't have to be made in such way. Messages for instance can be executed simultaniously at least conceptually.

 * Oh, and very importantly, OOP is an idea not a collection of specifications. Something may be not explicitly advertised as OOP but can be seen as having OOP aspects. Think in this way. Hypocraticallt, some language was designed well before the concept of structured programming was introduced but that language adapts aspects of structured programming. Do you claim that language is not structured programming because it was designed before structured programming was known? Or don't think the language has aspects of structued programming? Sometimes formalization of a theory takes some time not mention to its adaptation. Simula is a good example. It was designed before a term OOP was coined but you can see some primitive features of OOP.

 * This is my POV. And so from this definition, the Windows API is object-oriented. -- Taku 15:52, Oct 25, 2003 (UTC)

 * I know what you think OOP is, and I honestly don't know if you're right or not. If there are two prevalent definitions, then we should address both in the article, not advocate one of them. If there is only one widely accepted definition, then we should address it alone. Perhaps we need to do more research to determine how many valid definitions there are. -- Tim Starling 06:57, Oct 27, 2003 (UTC)

 * I disagree that we should address one definition if it is widely known. First, I don't think we can draw a clear line among definitions. Some people are somehow inclined to my side and some are completely far away. Besides, wikipedia is an encyclopedia. Many of articles here are very uncommon. If wikipedia is a textbook, then it is important to sometimes omit certain topics to make a flow. It is not the case in encyclopedia. Maybe we don't have to discuss unpopular definitions in the depth but it must be covered somehow. And if you only include one view, it is called POV.

-- Taku 04:09, Oct 28, 2003 (UTC)

 * I meant that idiosyncratic definitions shouldn't be included. If 95% of people use one definition, and 5% use the other, then we should include both. -- Tim Starling 04:23, Oct 28, 2003 (UTC)

 * Of course, but am I the only one who claimed above definition? That is what I have learned, have read at least I believe. Anyway since you are not sure either, I will keep more research. -- Taku 22:02, Oct 28, 2003 (UTC)

Development of OOP
Taku, much of what you want to write would be excellent in an article on the history or evolution of OOP. In that article, it's unlikely to be controversial to write that structured programming and abstract data types were part of the evolution of though which led to the popularity of OOP. They were and I doubt that anyone would disagree. Similarly, in their own articles, a mention of how they were then used as a component of the OOP concept would also be uncotroversial. What is controversial is saying that something which was written before OOP became popular used OOP concepts. That wasn't the frame of mind of those who were doing it at the time. The historical side does need to reflect the views of the time and the views of those who are working on a project if it is a recent project. Otherwise, I could start rewriting OOP articles and say that they are uses of the structured programming or abstract data types concept and remove references to OOP. That would be accurate but it would be misleading because it's not how OOP is thought of by those using it. History of OOP would be an interesting article because it would track the mainstream evolution of programming thought. JamesDay 16:39, 29 Oct 2003 (UTC)

Microsoft's own propaganda

In the late 1980's and early 1990's, object-oriented programming was extremely trendy, but then-mainstream programming languages (particularly PASCAL and C) were not object-oriented. It was extremely common for programmers to say that they were writing object-oriented code, or using object-oriented methodology, although they were not writing in an object-oriented language.

All sorts of partially-baked and homegrown ways of achieving this sprung up. For example, C structures might be hidden behind void * pointers, with access provided only by families of accessor and manipulator functions. The resulting thing might be referred to as an "object" and the accessor and manipulator functions as "methods," and so forth and so on. People went crazy writing structures full of function pointers. Almost everything was called an "object" if there was the slightest shred of an excuse for it.

Microsoft "window classes" and message-passing seem to me to belong to this genre.

But when Microsoft was proselytizing Windows in the 1990's, they themselves seemed to take every opportunity to suggest that Windows was object-oriented. The early books emphasized this, said that WIndows message-passing was a form of object-oriented programming, said that the master key to programming in Windows was understanding object-oriented programming concepts, etc. etc.

One of the things I dislike most about Microsoft (and IBM before them) is their habit of mixing marketing advocacy into what should be technical education, and redefining terms to suit their own purposes. But if Microsoft says it often enough to enough people, what they say is the definition of a term does start to gain some legitimacy, whether I like it or not (and I do not).

It's all sort of a grey area and it's a pity that there has to be a flame war about it. When object-oriented languages were not mainstream, there may (or may not) have been some virtue in faking a quasi-O-O approach within the mainstream O-O languages. Today, what's the point in worrying about it? There are enough real object-oriented environments around that anyone who wants to do object-oriented programming and use object-oriented concepts really should be doing it in an object-oriented language.

If we're going to have a flame war, let's have it about something meaningful—like whether a language like C++ can be said to be truly object-oriented when it contains so many fundamental types (ints, etc.) that are not objects and can't be subclassed. Now, that would be fun to argue about.

Well, I've been rambling, but the point I wanted to make is that although IMHO "window classes" are far from being true classes, it was Microsoft, and not just certain Wikipedians, that said they were.

Just my $0.02. Dpbsmith 03:26, 31 Oct 2003 (UTC)

Thank you for that interesting explanation Dpbsmith. But I don't understand why everyone's so obsessed with window classes. Window classes are really one of the least classy of the Windows object types. You can't get a handle to them, there's no accessors and there's no hint of polymorphism. Existing classes are accessed either by querying the associated window, or passing the name of the class. As I said previously, if you want OO programming in windows you have to look up the object chapter. I can't find it on the net, so I'll quote some here. This is from a 1996 version of the Win32 SDK. Copyright Microsoft, quoted here for the purposes of academic research.

 * Windows uses objects and handles to regulate access to system resources for two main reasons. First, the use of objects ensures that developers are not writing code specifically to low-level, internal structures. This enables Microsoft to add or change functionality of the operating system, as long as the original calling conventions are maintained. When subsequent versions of the operating system are released, applications will gain this new functionality with little or no additional development.

 * Second, the use of objects enables developers to take advantage of Win32 security. Each object has its own access-control list (ACL) that specifies the types of actions processes can perform on the object. The operating system examines an object's ACL each time an application attempts to create a handle to the object. For more information about security, see Security.

 * For most objects, the Win32 API provides functions that create the object, create an object handle, close the object handle, and destroy the object. These tasks may be combined or unnecessary, depending on the type of object and the situation. For example, an application could create an event object. Other applications could open the event and each would have a unique handle to the same event object. In this scenario, as the applications finish using the object, each closes its handle. When there are no open handles to the event object, the operating system removes the object from memory.

 * In contrast, an application could obtain the existing window-object handle. In this instance, when the window object is no longer needed, the application must remove the object from memory, which invalidates the window handle.

 * When a process terminates, the system automatically closes handles and deletes objects created by the process. However, when a thread terminates, the system usually does not close handles or delete objects. The only exceptions are window, hook, window position, and dynamic data exchange (DDE) conversation objects that are deleted when the creating thread terminates.

 * Handles and objects consume memory. Therefore, to preserve system performance, an application should close handles and delete objects as soon as they are no longer needed. Applications that do not do this can slow the operating system, due to excessive use of the paging file.

 * Windows provides three categories of objects: user, graphics device interface (GDI), and kernel, as shown in the following tables. The system uses user objects to support window management, GDI objects to support graphics, and kernel objects to support memory management, process execution, and interprocess communications (IPC). For information about creating and using a specific object, refer to the associated overview.

It then goes on to list 31 different objects, and the functions associated with each. The window class is not on the list. -- Tim Starling 00:33, Nov 2, 2003 (UTC)

Since the history of the class concept is not discussed here, and since the limitations of the topic or concept are not discussed either, the page is just a rehash of words from other places. 169.207.115.74 23:02, 1 Nov 2003 (UTC)

Discussion structure
This discussion is getting too large to read. Isn't it possible to have a short summary and hyperlinked to it the rest of the arguments ?

It is a shame that choice of wordings is hiding more fundamental aspects that I wanted to propose to modify.

I'd like to propose the use of a simpler and more consistent vocabulary (as in Smalltalk).

Class   is like an abstract datatype. Object

Instance = object      ; inherits from aClass. Class defines variables ; = state variable defines methods  ; = piece of code = behavior.

Please do not call methods subprograms. In the Wikipedia class definition, "function" is used. I much prefer that. But I'll agree that we can put functions, subprograms and methods in the same bag for generalists.

This for starters. It would also be nice if the rest of the description would use the same minimal vocabulary in order to have a consistent discource.

I am available for constructure discussions

Cheers --[--René TheJoker Bach 16:33, 5 Nov 2004 (UTC) 16:22, 5 Nov 2004 (UTC)rene@acm.org (background in AI (frames, OO Smalltalk, LISP, Prolog), biology and sailing-racing.

Object-based OOP
I removed this: "Object-based languages with this property do not provide the structural benefits of statically type checked interfaces for objects." Is this true? Also, which property does "this property" refer to? Besides, a class is not necessary a static entity. -- Taku 22:22, May 24, 2005 (UTC)
 * A lot of pure object-oriented languages rely solely on dynamic dispatch with no type system for objects or static checking of message sends (Smalltalk, Self, etc.). I suppose "this property" refers to this dynamic dispatch, whereas "the structural benefits of statically type checked interfaces for objects" refers to the static type checking you get in languages like C++ and Java. But if this were to go back in I'd also want to add something about the power of dynamic dispatch in encouraging reuse and fast prototyping. Deco 00:05, 25 May 2005 (UTC)

 * It does follow that if the language allows you to use a data type without defining it then then language compiler/interpreter cannot statically check types. The type check can be done at run-time though, but only from an operational standpoint. Take a read of dynamic dispatch as there is more information there. I'm going to put it back in and try to explain a bit better.   — KayEss | talk 01:07, 25 May 2005 (UTC)

 * I think the problem is this picture: class = static; no-class = dynamic. You can, of course, write a statically typed language like C++ without the use of classes and you can stil get a dynamic untyped languages without classes; especially Ruby comes to mind. Am I missing something? -- Taku 02:29, May 25, 2005 (UTC)

 * The language that you choose to implement a C++ compiler in is irrelevant as any complete language will do. Maybe you meant implemented in the language? In any case, a language like C++ offers only static typing. That is, the type of any language variable or constant has a single type which can be fully calculated at compile time. A language like VB allows the programmer to use a strict or lax type system. The upshot of this is that the interpreter cannot determine by looking at the source code if a given method invocation is supported by the object at run-time. This in itself wouldn't be enough to label it as an 'object-based' language if it supported other OO constructs (such as inheritance), but it doesn't.
 * In order to be a full OO system then you must be able to support 1) data encapsulation, 2) method encapsulation 3) dynamic dispatch and 4) inheritance. Languages like VB and JavaScript don't support inheritance so an OO design is much harder to implement in them (but as they are complete languages not of course impossible).   — KayEss | talk 03:05, 25 May 2005 (UTC)

 * I'm sorry for confusion. I was not talking about how to implement compilers. I meant that you can design that languages that do not use classes in the way C++ or Java does. Ruby is a class-based dynamic language. On the other hand, you can also design a statically typed OOP language without classes. Inheritance, for example, can be implemented via prototypes or mix-in. In any case, now I see the problem: we are using a term "object-based language" to refer to different things. I will rewrite the section for general cases when if languages do not have classes. This kind of discussion if it is possible for object-based languages to support OO constructs like inheritance shoud be put in object-based languages. Maybe that it is possible but most of those languages don't. -- Taku 11:21, May 25, 2005 (UTC)

 * I think your latest edits miss the point. You can put in something about languages that don't use classes, but I think we have to have an explanation of "object-based" as it is a pretty common term. I don't think you can have static typing, OO and no classes. What would your static types be? Even in languages like JavaScript I have written object hierarchies, but there is no language support for them. This is analagous to the situation between C and C++ - the core OO parts of C++ are easy to code in C (generics/templates aren't), but there is no syntactic support in C so it isn't classed as an OO language. The part of the article was defining object-based, not trying to discuss the difference between languages that do or don't have classes. Many object-based languages do have classes (i.e. VB).   — KayEss | talk 12:31, 25 May 2005 (UTC)

 * I changed my mind. I added a short note to refer to class-based OOP for comparision between class-based OOP and non-class-based one. I think this article should be about what is a class and this makes more sense. As for object-based languages, I have a very book at my desk that talks about static object-based languages; languages like Emerald, Cecil and Omega programming language. This remark is telling "The typings associated with prototyp-based languages such as Cecil and Omega strongly restrict the dynamic features, to the point that there is not much difference between those typings and the ones used for class-based languages. Therefore, much of the discussion of types for class-based languages ... applies to statically typed object-based languages." Again, an object-based language is rather vague concept, and defining it is beyond the scope of this article, in my opinion. -- Taku 22:58, May 25, 2005 (UTC)

 * I'm afraid I don't know any of those languages. What did you do with the text you removed? Did you merge it in anywhere else? I do agree that the article here should be more concerned with classes than object-based systems, but the object-based information here was better than any other I'd come across on the Wikipedia.   — KayEss | talk 08:10, 26 May 2005 (UTC)

 * The same here. I am still reading that book. If I was careful, I didn't delete any stuff. I moved some remarks about the difference between class-based OOP and non-class-based ones to class-based OOP. I think we should talk about how to do programming with classes over there, and this article should cover more of materials like implementations. WIthout C++, you can still perfectly do non-OOP. And, I certainly agree that we need more concrete descriptions of OOP, its concepts and languages. -- Taku 09:00, May 26, 2005 (UTC)

For some reason, Taku keeps deleting the reference to prototype-based programming. Why? Wouter Lievens 09:53, 26 May 2005 (UTC)

 * I was trying to keep the discussion concise. So my excuse is that in that process, I lost the mention of protype-based programming. I tried to restore this in my last edit. In other words, to answer your question, I was not quite as careful as I wanted to be :) -- Taku 11:17, May 26, 2005 (UTC)

Sub-section on access control?
What about a sub-section dedicated to the access control which is done when defining/dealing with objects? --Mecanismo 15:00, 26 July 2005 (UTC)

Inheritance makes an OO language? --- Looks like a struct Class   is like an abstract datatype. Object

Instance = object      ; inherits from aClass. Class defines variables ; = state variable defines methods  ; = piece of code = behavior.

From my understanding the only difference between a class and a struct is the fact that classes can have permissions set on the members of itself. C had structs, it is a procederal language. Structs can inherit data from "variables" of the same type which fulfills the defination of inheritance above. Please forgive my spelling its late and i dont really care as long as the message is clear. If this is not how inheritance works then please enlighten everyone.

 * They are conceptually different. If you just look at keywords like class and struct in C++ then there isn't that much difference between them. From a conceptual point of view though a struct is used to hold data (and some of that data may be function pointers or even functions), whereas a class is a larger concept that includes data and attendant behaviours. In some languages they may be implemented so as to be very similar (like in C++).   — KayEss | talk 08:39, 4 August 2005 (UTC)

 * C structs and C++ structs are very different. Yes, C does not support object-oriented programming, so its structs can't have methods and all that stuff. In C++, structs are almost the same as classes. --Spoon! 02:28, 1 September 2006 (UTC)

 * Before C++ caught on, however, there was a trend or fad for C programmers to define C structs many of whose members were function pointers. Doing this with the right mindset, defining these structs and their members in the right way, etc. it is possible to do a kind of half-assed object-oriented programming, and in some cases it is actually a worthwhile trick. These people tended to say "we are not using an object-oriented language, but nevertheless we are using an object-oriented approach."

 * Whether that's a valid point of view, I wouldn't care to say. Having programmed in Smalltalk for a couple of years, it doesn't seem to me that C++ is more than about a three-quarter-assed object-oriented language. It is amazing how often I found reasons to subclass things like integers in Smalltalk, and the inability to do so in C++ is a huge limitation--one which you tend not to notice if you're used to it.

 * Whether or not language X Truly Has the Object Oriented Nature is one of those areas of semantics and religion that just don't matter to me. Dpbsmith (talk) 12:40, 23 September 2006 (UTC)

Marked as Confusing
I was trying to get a sense of what the introduction of this entry was saying. I really had to dig around to understand it. There is a lot of good information, it just seems like if it was put together a little more elegantly that the knowledge could be conveyed a bit more cleanly and efficiently. --Remi0o 06:14, 20 December 2006 (UTC)

I completely agree. This article has a lot of information, but to beginners (like me), it's overwhelming. There are too many technical terms, and it just ended up making me more confused. Not to say that it should be turned into a "For Dummies" article, but making this article a little easier to read would be a BIG improvement. I think using less technical terms would be a good first. Then if any technical terms are used, they should link to other articles explaining what those terms mean. The examples are great, they should stay. The only real problem with the article is that a technical term should not be explained with another technical term, because it results in an article that only makes sense to someone who wouldn't need to read it! Trin3 19:12, 11 April 2007 (UTC)

Set Theory
It seems to me that there is a strong conceptual link between the idea of a class in OOP and the mathematical idea of a Class (set theory). Classes in OOP can be thought of as a collection of varius kinds of data along with the operations (methods) that are ordinarilly performed on that data. The set theory version of a class is basically the same as far as I can tell. For instance, the real numbers are considered to be a class (where class is the most general name that can be given to the abstract mathematical concept that is real numbers - more specifically they can be considered to be a set, or even a field), and the standard operations such as addition, subtraction, etc. are understood to be associated with the class of real numbers as well. Is it possible that this is where the OOP name for class came from? If so, that might be worth adding to the article somewhere. Juanquij0te 09:48, 7 January 2007 (UTC)

Circular Definitions
The article for "method (computer science)" uses these words: "In object-oriented programming, the term method refers to a piece of code that is exclusively associated either with a class (called class methods, static methods, or factory methods) or with an object (called instance methods)."

In this artcle, classes are described as "a collection of encapsulated instance variables and methods (functions), possibly with implementation of those types together with a constructor function that can be used to create objects of the class."

They both point to each other. This is confusing. Steeltoe 16:07, 11 January 2007 (UTC)

I think this article is wrong because in many languages a class can contain static methods or variables (like C#, Java, not sure about C++) that are not in the field of a specific instance.

I think that instead of going off onto a layman explination of classes in the third or so paragraph of the introduction, a section should be made which introduces OOP and classes to the layman.

-To whoever asked the question. Most methods are within the field of each instance of the class, however there are static methods which are common to that class.

 * The problem with this type of article is that the exact concepts and terminology used vary from language to language and dexcription to description, and contributors, who are only familiar with an extremely small range of languages (there are thousands!), do not realize that others use the same terms differently. I don't think these articles can afford to provide definitions of concepts from a single point of view, as they can't possibly be neutral that way. Rather they should make differences in the use of terms explicit. Rp (talk) 13:28, 12 February 2008 (UTC)

Examples
I find some of the examples to be either misleading or not very helpful for illustrating the idea of mapping a real world entity to an object in a program, which is one of the real benefits of OO design. For instance the Java example that states "This example shows the simplest Java class possible." is completely false, it shows a simple example sure, but it's not helpful in understanding the point of using a class, and isn't the simplest class you can define in Java:

class Simple {}

Not that this is very simple since an awful lot of behavior is being implied here if you know more about Java. It would be nice if we could come up with some more appropriate examples for illustrating the OO paradigm and the concept of a class, not features of a language or specific syntax. MattOates (Ulti) 12:56, 18 February 2007 (UTC)

Confusing terminology
As a newcomer to the world of C++ programing, I must say the terminology is very confusing and defining said terminology can be done more clearly. Once straightening out what each term means in everyday conversational English, I believe it would definitely clear up a lot of confusion. —The preceding unsigned comment was added by 157.62.105.5 (talk) 19:39, 28 February 2007 (UTC).

Are method definitions copied for each instance?
"Are method definitions copied for each instance?"

No. There is only one definition for each method of a class for all instances of the classes. Only the data (fields) vary by instance.

Jim Anderson

Janderson507 14:24, 29 March 2007 (UTC)

Why abstract classes are used?
"why abstract classes are used?

Same reason you use interfaces. "

---

Actually this is not true. Interfaces provide an API that the consumer must implement, while abstract classes may have default implementations of methods that clients can take advantage of, rather than override.

Jim Anderson

Janderson507 14:28, 29 March 2007 (UTC)

Mutiple Inheritance and Interfaces
"Depending on the language, classes may support multiple inheritance or may require the use of interfaces to extend other classes."

---

This statement doesn't make sense. Interfaces are not required to extend other classes regardless of whether a progamming language supports multiple inheritance.

Jim Anderson

Janderson507 14:33, 29 March 2007 (UTC)

 * The point is that interfaces are used as a replacement of multiple inheritance in single-inheritance languages. Rp (talk) 13:30, 12 February 2008 (UTC)

Scope
"Scope refers to the visibility of a data component based upon where it is nested, that is between which set of braces ({}) it occurs."

---

Is this statement referring specifically to Java? If so, I think it should state as such. If not, not all programming languages use braces ({}) to delineate scope.

Jim Anderson

Janderson507 14:37, 29 March 2007 (UTC)

Fundamentals of OOP
"This is called encapsulation, and is one of the three fundamentals of object-oriented programming."

---

There are actually four "fundamentals of object-oriented programming." 1. Abstraction 2. Encapsulation 3. Inheritance 4. Polymorphism

Jim Anderson

Janderson507 14:41, 29 March 2007 (UTC)

"Unlike multiple inheritance where actual code is inherited (along with naming and logical conflicts), interfacing allows us to define a behavior interface (methods) all implementing classes should be able to fulfill."

---

This statement doesn't make sense. Whether or not code is inherited has no relation to the number of supertypes (single or multiple inheritance). Multiple inheritance can be implemented with interfaces, in which case, no implementation code is inherited.

Jim Anderson

Janderson507 14:54, 29 March 2007 (UTC)

"The methods that are not in any of the interfaces of a class are private to the class, and not intended to be depended on by other classes."

---

This is not necessarily true. A sub-class may choose to extend it's parent with public methods not included in any inherited interface.

Jim Anderson

Janderson507 14:59, 29 March 2007 (UTC)

This article and its discontents
This article is far from the standard I expect in a Wikipedia article. I am new to programming and I wanted a clear and lucid encyclopedia definition of the concept of a class in OOP; instead I get something that reads like it comes from the manuals that fail to explain it clearly in the first place, while the discussion page contains very little serious effort towards improving the article, being taken up instead by a fight about Microsoft. Beginning programmers like me are very aware of the huge gap between doofus-level programming books, which are easily mastered and usually overwritten, and the more useful stuff which is pitched far above our heads. Wikipedia is in a position to fill that gap by explaining subjects as clearly as possible without a lot of whimsical cruft, but this article doesn't do it. I would make suggestions to improve it, but I only know about writing comprehensible English, very little about the subject in question. The only helpful suggestion I've seen is the tentative analogy between classes in OOP and classes in set theory; I don't even know if it's a good analogy, but if so it at least helps to make things clearer. (The article on Pointers strikes me by comparison as a model of how to write this sort of piece.) Can we stop the 'edit war' (which isn't one, because very little editing seems to be getting done) and get on with explaining the topic, please? Lexo 14:19, 5 May 2007 (UTC)

is content sufficiently general?
just a quick observation based only on a quick skim:

contributors to this article may want to be careful that assertions and examples apply to all OOP environments rather than just a subset.

for example, i think i noticed an assertion that objects based on classes need to be instsntiated which impies that classes are not objects, which might hold true for C++ but not for smalltalk in which everything is an object including classes IIRC (my reason for looking up this article in the first place was that i'm getting a bit rusty on this stuff... and frankly didn't find the article all that helpfull.)

given the title of the article the content strikes me as a bit narrowly focused and overly detailed. not sure if that's a problem with the content or the title. -ef

Mistake in pseudo code ?
referring to the inconsistent use of the semicolon in the Introduction section. —Preceding unsigned comment added by 62.101.126.216 (talk) 01:48, 25 September 2007 (UTC)

license: Creative Commons - Attribution Share-Alike - https://creativecommons.org/licenses/by-sa/4.0/


text:
Climbing gourami

The Anabantidae are a family of ray-finned fish within the order Anabantiformes commonly called the climbing gouramies or climbing perches. The family includes about 34 species. As labyrinth fishes, they possess a labyrinth organ, a structure in the fish's head which allows it to breathe atmospheric oxygen. Fish of this family are commonly seen gulping at air at the surface of the water. The air is held in a structure called the suprabranchial chamber, where oxygen diffuses into the bloodstream via the respiratory epithelium covering the labyrinth organ. This therefore allows the fish to move small distances across land.

Genera
There are four extant genera within the family Anabantidae:

 * Anabas Cloquet, 1816
 * Ctenopoma Peters, 1844
 * Microctenopoma Norris, 1995
 * Sandelia (Castelnau, 1861)

There is also at least one extinct genus known:

 * †Eoanabas Wu, Chang, Miao et al, 2016

Of the four genera, Anabas are the only climbing gouramies found in South Asia. They are widely distributed and are found in countries including Pakistan, India, Bangladesh, Sri Lanka, and China. Climbing gouramies have distinct names in numerous South Asian languages. In Tamil, they are பனையேறி கெண்டை (panaieri kendai); in Malayalam, chemballi; in Odia, they are କଉ ମାଛ (kau); in Assamese they are কাৱৈ মাছ (kawoi maas); in Bengali, they are কই মাছ (koi mach).

The remaining three genera are endemic to Africa: Ctenopoma and Microctenopoma are primarily found in the Congo Basin, whereas Sandelia are endemic to the Eastern and Western Capes of South Africa. Anabantidae are primarily freshwater fish and only very rarely are found in brackish water. Parental care is varied; Anabas and Ctenopoma do not tend their eggs, Microctenopoma species produce bubble nests like many other labyrinth fish, and Sandelia lays their eggs on the substrate.

Climbing gouramis are so named due to their ability to "climb" out of water and "walk" short distances. Even though it has not been reliably observed, some authors have mentioned about them having a tree climbing ability. Their method of terrestrial locomotion uses the gill plates as supports, and the fish pushes itself using its fins and tail.

title: Climbing gourami


text:
Elections in Sweden

Elections in Sweden are held once every four years. At the highest level, all 349 members of Riksdag, the national parliament of Sweden, are elected in general elections. Elections to the 20 county councils (landsting) and 290 municipal assemblies (kommunfullmäktige) – all using almost the same electoral system – are held concurrently with the legislative elections on the second Sunday in September (with effect from 2014; until 2010 they had been held on the third Sunday in September).

Sweden also holds elections to the European Parliament, which unlike Swedish domestic elections are held in June every five years, although they are also held on a Sunday and use an almost identical electoral system. The last Swedish general election was held on 11 September 2022. The last Swedish election to the European Parliament was held on 9 June 2024.

Dates
Elections to Sweden's county councils occur simultaneously with the general elections on the second Sunday of September. Elections to the municipal councils also occur on the second Sunday of September. Elections to the European Parliament occur every five years in May or June throughout the entire European Union; the exact day of the election varies by country according to the local tradition, thus in Sweden they happen on a Sunday.

Voter eligibility
To vote in a Swedish general election, one must be:
 * a Swedish citizen,
 * at least 18 years of age on election day,
 * and have at some point been a registered resident of Sweden (thus excluding foreign-born Swedes who have never lived in Sweden)

To vote in Swedish local elections (for the county councils and municipal assemblies), one must:
 * be a registered resident of the county or municipality in question and be at least 18 years of age on election day
 * fall into one of the following groups:
 * 1) Swedish citizens
 * 2) Citizens of Iceland, Norway, or any country in the European Union
 * 3) Citizens of any other country who have permanent residency in Sweden and have lived in Sweden for three consecutive years

In order to vote in elections to the European Parliament, one must be 18 years old, and fall into one of the following groups:

 * 1) Swedish citizens who are or have been residents of Sweden
 * 2) Citizens of any other country in the European Union who are currently residents of Sweden; such citizens, by choosing to vote in European Parliamentary elections in Sweden, become ineligible to vote in European Parliamentary elections in any other EU member state

In general, any person who is eligible to vote is also eligible to stand for election.

Sweden does not disenfranchise prisoners or those with criminal convictions. Expat Swedish citizens may however be removed from the polling register if they do not renew their registration every 10 years.

Voting
Unlike in many countries where voters chose from a list of candidates or parties, each party in Sweden has separate ballot papers. The ballot papers must be identical in size and material, and have different colors depending on the type of election: yellow for Riksdag elections, blue for county council elections and white for municipal elections and elections to the European Parliament.

Sweden uses open lists and utilizes apparentment between lists of the same party and constituency to form a cartel, a group of lists that are legally allied for purposes of seat allocation. A single preference vote may be indicated as well.

Swedish voters can choose between three different types of ballot papers. The party ballot paper has simply the name of a political party printed on the front and is blank on the back. This ballot is used when a voter wishes to vote for a particular party, but does not wish to give preference to a particular candidate. The name ballot paper has a party name followed by a list of candidates (which can continue on the other side). A voter using this ballot can choose (but is not required) to cast a personal vote by entering a mark next to a particular candidate, in addition to voting for their political party. Alternatively, a voter can take a blank ballot paper and write a party name on it. Finally, if a party has not registered its candidates with the election authority, it is possible for a voter to manually write the name of an arbitrary candidate. In reality, this option is almost exclusively available when voting for unestablished parties. However, it has occasionally caused individuals to be elected into the city council to represent parties they do not even support as a result of a single voter's vote.

The municipalities and the national election authority have the responsibility to organise the elections. On the election day, voting takes place in a municipal building such as a school. It is possible to do early voting, also in a municipal building which is available in day time, such as a library. Early voting can be performed anywhere in Sweden, not just in the home municipality.

Long-standing Swedish election policy of always displaying the ballot papers for voters to select in public, making it impossible for many voters to vote secretly, has been criticised as undemocratic and is arguably in blatant contravention of Protocol 1, Article 3 of the European Convention on Human Rights (ECHR) which clearly stipulates that elections must be free and by secret ballot. Whilst many wrongly believe that the use of masking by selecting multiple ballot papers is an effective mitigation of this lack of secrecy, it is readily demonstrated that it cannot be considered as such by simply considering a case where an individual is being coerced into not voting for a particular party.

In 2014 a German citizen, Christian Dworeck, reported this lack of secrecy in Swedish voting to the European Commission and from 2019 ballot papers are selected behind a screen. It remains to be seen if this measure, quietly introduced to bring EU elections in Sweden into compliance with European human rights law. This measure has now been implemented in Swedish parliamentary and local elections as was seen in the Swedish General Election of 2022 (a picture can be seen in the linked reference).

Cost of ballot papers
For the general elections, the State pays for the printing and distribution of ballot papers for any party which has received at least one percent of the vote nationally in either of the previous two elections. For local elections, any party that is currently represented in the legislative body in question is entitled to free printing of ballot papers.

Constituencies
In Riksdag elections, constituencies are usually coterminous with one of the Swedish counties, though the Counties of Stockholm, Skåne (containing Malmö), and Västra Götaland (containing Gothenburg) are divided into smaller electoral constituencies due to their larger populations. The number of available seats in each constituency is based on its number of voters (vis-à-vis the number of voters nationwide), and parties are apportioned seats in each constituency based on their votes in that constituency.

In County Council elections, individual municipalities—or alternatively groups of municipalities—are used as electoral constituencies. The number of seats on the county council allocated to each constituency, and the borders of these constituencies, is entirely at the discretion of each county council itself. As mandated by Swedish law, nine out of ten seats on each county council are permanent seats from a particular constituency; the remaining seats are at-large adjustment seats, used to ensure county-wide proportionality with the vote, just as with general elections.

For European parliamentary elections, all of Sweden consists of one electoral district.

Party list candidate selection
In Sweden the seats of the Riksdag are allocated to the parties, and the prospective members are selected by their party. Sweden uses open lists and utilizes apparentement between lists of the same constituency and party to form a cartel, a group of lists that are legally allied for purposes of seat allocation. Which candidates from which lists are to secure the seats allocated to the party is determined by two factors: preference votes are first used to choose candidates which pass a certain threshold, then the number of votes cast for the various lists within that party are used. In national general elections, any candidates who receive a number of personal votes equal to five percent or greater of the party's total number of votes will automatically be bumped to the top of the list, regardless of their ranking on the list by the party. This threshold is similarly five percent for local elections and elections to the European Parliament.

Although sometimes dissatisfied party supporters put forward their own lists, the lists are usually put forward by the parties, and target different constituencies and categories of voters. Competition between lists is usually more of a feature of campaign strategies than for effective candidate preferences, and does not bear prominently in elections.

Because seats are allocated primarily to the parties and not candidates, the seat of an MP who resigns during their term in office can be taken by a replacement runner-up candidate from their own party (unlike systems such as the United Kingdom, a by-election is not triggered). In contrast to assigning the seat, resigning is a voluntary action of the MP, meaning that there exists the possibility of MPs resigning from their parties but not their seats and sitting as independents. The system of replacement runner-up candidates also means that the Prime Minister and their potential members of cabinet appear on ballot papers, but surrender their seats to replacement candidates as they are appointed as ministers (holding both posts is not permitted). This allows senior party politicians to assume roles as opposition members of parliament if they lose an election.

Seat allocation
Seats in the various legislative bodies are allocated amongst the Swedish political parties proportionally using a modified form of the Sainte-Laguë method. This modification creates a systematic preference in the mathematics behind seat distribution, favoring larger and medium-sized parties over smaller parties. It reduces the slight bias towards larger parties in the d'Hondt formula. At the core of it, the system remains intensely proportional, and thus a party which wins approximately 25% of the vote should win approximately 25% of the seats. An example of the close correlation between seats and votes can be seen below in the results of the 2002 Stockholm municipal election.

In Riksdag elections, 310 of the members are elected using a party-list proportional representation system within each of Sweden's 29 electoral constituencies. The remaining 39 seats in the Riksdag are "adjustment seats", distributed amongst the parties in numbers that will ensure that the party distribution in the Riksdag matches the distribution of the votes nationally as closely as possible. County elections use the same system. All seats on municipal assemblies are permanent; there are no adjustment seats. This can cause the distribution of seats in the municipal assemblies to differ somewhat from the actual distribution of votes in the election. The European Parliament has 751 permanent seats, 20 of which were allocated to Sweden for the 2019 election. After Brexit, an additional seat was allocated for Sweden.

In order to restrict the number of parties which win seats in the Riksdag, a threshold has been put in place. In order to win seats in the Riksdag, a party must win at least four percent of the vote nationally, or twelve percent of the vote in any electoral constituency. County elections use a lower threshold of three percent. For municipal elections, since the elections of 2018 there has been a minimum threshold of two percent in municipalities with only one constituency, and three percent in those with more than one.

Comparison of vote share vs. share of allocated seats after 2018 municipal elections:

Terms of office
The assembly members are elected for a fixed term of four years. In 1970 to 1994, terms were three years; before that, normally four. The Riksdag may be dissolved earlier by a decree of the prime minister, in which case new elections are held; however, new members will hold office only until the next ordinary election, the date of which remains the same. Thus the terms of office of the new members will be the remaining parts of the terms of the MPs in the dissolved parliament.

The unicameral Riksdag has never been dissolved by decree. The last time the second chamber of the old Riksdag was dissolved in this manner was in 1958.

The regional and local assemblies cannot be dissolved before the end of their term.

Party organization
While parties have been very careful to maintain their original mass party image, party organizations have become increasing professionalized and dependent on the state, and less connected with their grass-roots members and civil society. Party membership has declined to 210,067 members in 2010 across all parties (3.67% of the electorate), from 1,124,917 members in 1960 (22.62% of the electorate). Political parties can be registered with the support of 1500 electors for Riksdag elections, 1500 electors for EU elections, 100 electors for county council elections, and/or 50 electors for municipal elections.

Riksdag elections
The unicameral Parliament of Sweden has 349 members: 310 are elected using party-list proportional representation, and 39 using "adjustment seats".

2018 election
At the 2018 general elections the red-green coalition consisting of Social Democrats, Greens and the Left got 40.7% of the votes compared to 40.3% for the Alliance parties, resulting in a single-seat difference between the blocks. After a prolonged government formation process, Stefan Löfven was able to form a minority government with the Greens, conditional on external support from Centre Party and the Liberals.

Riksdag election results in percent of the vote 1911–2022
The first elections to a unicameral Riksdag were held in 1970. The older figures refer to elections of the Andra kammaren under the older bicameral system.

Note that, the 2022 results are still preliminary; official results will be announced about two weeks after the election.

County Council elections results

 * 2002 Swedish county council elections

Other municipalities

 * 2002 Stockholm municipal election
 * 2002 Pajala municipal election

Elections to the European Parliament
The most recent European parliamentary elections in Sweden were held in June 2024.

title: Elections in Sweden


text:
Smilacaceae

Smilacaceae, the greenbriers, is a family of flowering plants. While they were often assigned to a more broadly defined family Liliaceae, most recent botanists have accepted the two as distinct families, diverging around 55 million years ago during the Early Paleogene. One characteristic that distinguishes Smilacaceae from most of the other members of the Liliaceae-like Liliales is that it has true vessels in its conducting tissue. Another is that the veins of the leaves, between major veins, are reticulate (net-shaped), rather than parallel as in most monocots.

Taxonomy
The APG II system, of 2003 (unchanged from the APG system, of 1998), recognizes this family and places it in the order Liliales, in the clade monocots. Earlier it was a family of two genera, Heterosmilax and Smilax, but DNA studies have shown that Heterosmilax has arisen from Smilax and the two genera are now merged. This results in Smilax being the only genus in Smilacaceae with about 210 known species. The family occurs throughout the tropical and warm temperate regions of the world. Members of this family typically have woody roots and a climbing or vining form. Some have woody vining stems, often with thorns, while others are herbaceous above ground and thornless.

Other placements of the family include:
 * The Cronquist system, of 1981, recognized this family and placed it in the order Liliales, in subclass Liliidae in class Liliopsida [=monocotyledons] of division Magnoliophyta [=angiosperms].
 * The Reveal system (1997) recognized this family and placed it in the order Smilacales, in subclass Liliidae which is placed as in the Cronquist system.
 * The Thorne system (1992) also recognized this family, and placed it in the order Dioscoreales in superorder Lilianae in subclass Liliidae (monocotyledons) of class Magnoliopsida (angiosperms).
 * The Dahlgren system treated it as did the Thorne system (1992): see above.

Characteristics
Members of this family can be herbaceous to "woody" vines. They grow from their rhizomes and are often armed with prickles on the stems and/or leaves. Leaves are alternate and simple; and entire to spinose-serrate. Some members of this family have coriaceous (leathery) leaves. Venation of the leaves may be palmate to reticulate. A pair of tendrils often appear near the base of the petiole. The inflorescence type for members of this family is an umbel. The flowers are inconspicuous, radial and unisexual. The flowers are made of 6 tepals, 6 stamens and 3 carpels. The fruit type of all members of Smilacaceae is a berry. The number of seeds per berry is 1–3. Nectaries are located at the base of the tepals.

Genera
While both genera are dioecious and nearly indistinguishable vegetatively, their flowers differ markedly. The flower of Heterosmilax is fused into a deep bottle-shaped tube containing prominent nectaries and its stamens are connected at the bottom, whereas flowers of Smilax are typically small with unfused floral parts. Smilax is a much larger and more widely distributed genus than Heterosmilax. Heterosmilax has only twelve species which are confined to China, Japan, tropical Asia, Singapore, Malaysia, and the surrounding islands.

Some taxonomists separate the herbaceous plants native to North America in Smilax as the genus Nemexia, which is known for its malodorous flowers. Smilax would then be left with only plants of a woody, vining form with thorns. However, the Flora of North America does not recognise Nemexia, nor does the Missouri Botanical Garden's Angiosperm Phylogeny Website.

title: Smilacaceae


text:
Smilax

Smilax is a genus of about 300–350 species, found in the tropics and subtropics worldwide. They are climbing flowering plants, many of which are woody and/or thorny, in the monocotyledon family Smilacaceae, native throughout the tropical and subtropical regions of the world. Common names include catbriers, greenbriers, prickly-ivys and smilaxes. Sarsaparilla (also zarzaparrilla, sarsparilla) is a name used specifically for the Neotropical S. ornata as well as a catch-all term in particular for American species. Occasionally, the non-woody species such as the smooth herbaceous greenbrier (S. herbacea) are separated as genus Nemexia; they are commonly known by the rather ambiguous name carrion flowers.

Greenbriers get their scientific name from the Greek myth of Crocus and the nymph Smilax. Though this myth has numerous forms, it always centers around the unfulfilled and tragic love of a mortal man who is turned into a flower, and a woodland nymph who is transformed into a brambly vine.

Description
On their own, Smilax plants will grow as shrubs, forming dense impenetrable thickets. They will also grow over trees and other plants up to 10 m high, their hooked thorns allowing them to hang onto and scramble over branches. The genus includes both deciduous and evergreen species. The leaves are heart shaped and vary from 4–30 cm long in different species.

Greenbrier is dioecious. However, only about one in three colonies have plants of both sexes. Plants flower in May and June with white/green clustered flowers. If pollination occurs, the plant will produce a bright red to blue-black spherical berry fruit about 5–10 mm in diameter that matures in the fall.

Taxonomy
The genus has traditionally been considered as divided into a number of sections, but molecular phylogenetic studies reveals that these morphologically defined subdivisions are not monophyletic. Subdivision is best considered in terms of clades (A–D), corresponding to biogeography, with the main divisions being Old World (clades C, D) and New World (clade B) with the exception of S. aspera, that appears to be sister to all other species (clade A) and has a tri-continental disjunction.

Section Smilax includes "woody", prickly vines of temperate North America, for example cat greenbrier (S. glauca) and common greenbrier (S. rotundifolia). Section Nemexia includes unarmed herbaceous plants of temperate North America, for example "carrion flowers" like the smooth herbaceous greenbrier (S. herbacea). Section Heterosmilax represents a previous separate genus that was found to be embedded within Smilax, and was reduced to a section within it.

List of selected species

 * Smilax aberrans Gagnep.
 * Smilax aculeatissima Conran
 * Smilax amblyobasis K.Krause
 * Smilax ampla Warb. ex K.Krause
 * Smilax anceps Willd.
 * Smilax anguina K.Krause
 * Smilax annulata Warb. ex K.Krause
 * Smilax aquifolium Ferrufino & Greuter
 * Smilax arisanensis Hayata
 * Smilax aristolochiifolia Mill. – American sarsaparilla
 * Smilax aspera L. – Mediterranean smilax, common smilax, rough smilax
 * Smilax aspericaulis Wall. ex A.DC.
 * Smilax assumptionis A.DC.
 * Smilax astrosperma F.T.Wang & Tang
 * Smilax auriculata Walter
 * Smilax australis R.Br. – lawyer vine, barbwire vine, wait-a-while (Australia)
 * Smilax azorica H.Schaef. & P.Schönfelder
 * Smilax bapouensis H.Li
 * Smilax basilata F.T.Wang & Tang
 * Smilax bauhinioides Kunth
 * Smilax bella J.F.Macbr.
 * Smilax biflora Siebold ex Miq.
 * Smilax biltmoreana (Small) J.B.Norton ex Pennell
 * Smilax biumbellata T.Koyama
 * Smilax blumei A.DC.
 * Smilax bockii Warb.
 * Smilax bona-nox L. – saw greenbrier
 * Smilax borneensis A.DC.
 * Smilax bracteata Presl
 * Smilax brasiliensis Sprengel.
 * Smilax californica (A.DC.) A.Gray
 * Smilax calophylla Wall. ex A.DC.
 * Smilax cambodiana Gagnep.
 * Smilax campestris Griseb.
 * Smilax canariensis Willd.
 * Smilax canellifolia Mill.
 * Smilax celebica Blume
 * Smilax chapaensis Gagnep.
 * Smilax china L.
 * Smilax chingii F.T. Wang & Ts.Tang
 * Smilax cinnamomea Desf. ex A.DC.
 * Smilax cissoides M.Martens & Galeotti
 * Smilax cocculoides Warb.
 * Smilax cognata Kunth
 * Smilax compta (Killip & C.V.Morton) Ferrufino
 * Smilax corbularia Kunth
 * Smilax cordato-ovata Rich.
 * Smilax cordifolia Humb. & Bonpl. ex Willd.
 * Smilax coriacea Spreng.
 * Smilax cristalensis Ferrufino & Greuter
 * Smilax cuprea Ferrufino & Greuter
 * Smilax cuspidata Duhamel
 * Smilax cyclophylla Warb.
 * Smilax darrisii H.Lév.
 * Smilax davidiana A.DC.
 * Smilax densibarbata F.T.Wang & Tang
 * Smilax discotis Warb.
 * Smilax domingensis Willd.
 * Smilax ecirrhata (Engelm. ex Kunth) S.Wats.
 * Smilax elastica Griseb.
 * Smilax elegans Wall.
 * Smilax elegantissima Gagnep.
 * Smilax elmeri Merr.
 * Smilax elongatoumbellata Hayata
 * Smilax emeiensis J.M.Xu
 * Smilax erecta Merr.
 * Smilax excelsa L.
 * Smilax extensa A.DC.
 * Smilax ferox Wall. ex Kunth
 * Smilax flavicaulis Rusby
 * Smilax fluminensis Steud.
 * Smilax fooningensis F.T.Wang & Tang
 * Smilax gagnepainii T.Koyama
 * Smilax gigantea Merr.
 * Smilax gigantocarpa Koord.
 * Smilax glabra Roxb. – chinaroot, tufuling (土茯苓)
 * Smilax glauca Walter – cat greenbrier, glaucous greenbrier
 * Smilax glaucochina Warb.
 * Smilax glyciphylla Sm. – sweet sarsaparilla, native sarsaparilla (Australia)
 * Smilax goyazana A.DC.
 * Smilax gracilior Ferrufino & Greuter
 * Smilax griffithii A.DC.
 * Smilax guianensis Vitman
 * Smilax guiyangensis C.X.Fu & C.D.Shen
 * Smilax havanensis Jacq.
 * Smilax hayatae T.Koyama
 * Smilax hemsleyana Craib.
 * Smilax herbacea L. – smooth herbaceous greenbrier, carrion flower (southern Quebec in Canada, Eastern United States)
 * Smilax hilariana A.DC.
 * Smilax horridiramula Hayata
 * Smilax hugeri (Small) J.B.Norton ex Pennell
 * Smilax hypoglauca Benth.
 * Smilax ilicifolia Desv. ex Ham.
 * Smilax illinoensis Mangaly – Illinois greenbrier
 * Smilax indosinica T.Koyama
 * Smilax inversa T.Koyama
 * Smilax irrorata Mart. ex Griseb.
 * Smilax jamesii G.Wallace
 * Smilax japicanga Griseb.
 * Smilax javensis A.DC.
 * Smilax kaniensis K.Krause
 * Smilax keyensis Warb. ex K.Krause
 * Smilax kingii Hook.f.
 * Smilax klotzschii Kunth
 * Smilax korthalsii A.DC.
 * Smilax kwangsiensis F.T.Wang & Tang
 * Smilax lanceifolia Roxb.
 * Smilax lappacea Humb. & Bonpl. ex Willd.
 * Smilax larvata Griseb.
 * Smilax lasioneura Hook. – herbaceous greenbrier
 * Smilax lasseriana Steyerm.
 * Smilax laurifolia L.
 * Smilax lebrunii H.Lév.
 * Smilax leucophylla Blume
 * Smilax ligneoriparia C.X.Fu & P.Li
 * Smilax ligustrifolia A.DC.
 * Smilax loheri Merr
 * Smilax longifolia Rich.
 * Smilax lucida Merr.
 * Smilax luei T.Koyama
 * Smilax lunglingensis F.T.Wang & Tang
 * Smilax lushuiensis S.C.Chen
 * Smilax lutescens Vell.
 * Smilax luzonensis Presl
 * Smilax macrocarpa Blume
 * Smilax magnifolia J.F.Macbr.
 * Smilax mairei Lev.
 * Smilax malipoensis S.C.Chen
 * Smilax maritima Feay ex Alph.Wood
 * Smilax maypurensis Humb. & Bonpl. ex Willd.
 * Smilax megacarpa A.DC.
 * Smilax megalantha C.H.Wright
 * Smilax melanocarpa Ridl.
 * Smilax melastomifolia Sm. – hoi kuahiwi (Hawaii)
 * Smilax menispermoidea A.DC.
 * Smilax microchina T.Koyama
 * Smilax microphylla C.H.Wright
 * Smilax minarum A.DC.
 * Smilax minutiflora A.DC.
 * Smilax modesta A.DC.
 * Smilax mollis Humb. & Bonpl. ex Willd.
 * Smilax moranensis Mart. & Galeotti
 * Smilax munita S.C.Chen
 * Smilax muscosa Toledo
 * Smilax myosotiflora A.DC.
 * Smilax myrtillus A.DC.
 * Smilax nageliana A.DC.
 * Smilax nana F.T.Wang
 * Smilax nantoensis T.Koyama
 * Smilax neocaledonica Schltr
 * Smilax nervomarginata Hayata
 * Smilax nigrescens F.T.Wang & Tang
 * Smilax nipponica Miq.
 * Smilax nova-guineensis T.Koyama
 * Smilax obliquata Duhamel
 * Smilax oblongata Sw.
 * Smilax ocreata DC.
 * Smilax odoratissima Blume
 * Smilax officinalis Kunth
 * Smilax orbiculata Labill.
 * Smilax ornata Lem.
 * Smilax orthoptera A.DC.
 * Smilax outanscianensis Pamp.
 * Smilax ovalifolia Roxb.
 * Smilax ovatolanceolata T.Koyama
 * Smilax pachysandroides T.Koyama
 * Smilax paniculata M.Martens & Galeotti
 * Smilax papuana Lauterb.
 * Smilax perfoliata Lour.
 * Smilax petelotii T.Koyama
 * Smilax pilcomayensis Guagl. & S.Gattuso
 * Smilax pilosa Andreata & Leoni
 * Smilax pinfaensis H.Lév. & Vaniot
 * Smilax plurifurcata A.DC.
 * Smilax poilanei Gagnep.
 * Smilax polyacantha Wall. ex Kunth
 * Smilax polycolea Warb.
 * Smilax populnea Kunth
 * Smilax pottingeri Prain
 * Smilax pseudochina L. - false chinaroot
 * Smilax pulverulenta Michx.
 * Smilax pumila Walter
 * Smilax purhampuy Ruiz
 * Smilax purpurata G.Forst.
 * Smilax pygmaea Merr.
 * Smilax quadrata A.DC.
 * Smilax quadrumbellata T.Koyama
 * Smilax quinquenervia Vell.
 * Smilax remotinervis Hand.-Mazz.
 * Smilax retroflexa (F.T.Wang & Tang) S.C.Chen
 * Smilax riparia A.DC.
 * Smilax rotundifolia L. - common greenbrier (Eastern United States)
 * Smilax rubromarginata K.Krause
 * Smilax rufescens Griseb.
 * Smilax ruiziana Kunth
 * Smilax salicifolia Griseb.
 * Smilax sanguinea Posada-Ar.
 * Smilax santaremensis A.DC.
 * Smilax saulensis J.D.Mitch.
 * Smilax schomburgkiana Kunth
 * Smilax scobinicaulis C.H.Wright
 * Smilax sebeana Miq.
 * Smilax setiramula F.T.Wang & Tang
 * Smilax setosa Miq.
 * Smilax sieboldii Miq.
 * Smilax sinclairii T.Koyama
 * Smilax siphilitica Humb. & Bonpl. ex Willd.
 * Smilax solanifolia A.DC.
 * Smilax spicata Vell.
 * Smilax spinosa Mill.
 * Smilax spissa Killip & C.V.Morton
 * Smilax spruceana A.DC.
 * Smilax stans Maxim.
 * Smilax stenophylla A.DC.
 * Smilax subinermis C.Presl
 * Smilax subpubescens A.DC.
 * Smilax subsessiliflora Poir.
 * Smilax synandra Gagnep.
 * Smilax talbotiana A.DC.
 * Smilax tamnoides L. - halberd-leaved greenbrier
 * Smilax tetraptera Schltr
 * Smilax timorensis A.DC.
 * Smilax tomentosa Kunth
 * Smilax trachypoda J.B.Norton
 * Smilax trinervula Miq.
 * Smilax tsinchengshanensis F.T.Wang
 * Smilax tuberculata C.Presl
 * Smilax turbans F.T.Wang & Tang
 * Smilax utilis C.H.Wright
 * Smilax vaginata Decne.
 * Smilax vanchingshanensis (F.T.Wang & Tang) F.T.Wang & Tang
 * Smilax velutina Killip & C.V.Morton
 * Smilax verrucosa Griseb.
 * Smilax verticalis Gagnep.
 * Smilax vitiensis (Seem.) A.DC.
 * Smilax wallichii Kunth
 * Smilax walteri Pursh.
 * Smilax wightii A.DC.
 * Smilax williamsii Merr.
 * Smilax yunnanensis S.C.Chen
 * Smilax zeylanica L.

Distribution and habitat
The genus has a pantropical distribution, extending into adjacent temperate zones to north and south. 29 species are recognized in Central America and the Caribbean, while there are 20 species in North America north of Mexico. In China, there are 80 species (39 of which are endemic).

Ecology
The berry is rubbery in texture and has a large, spherical seed in the center. The fruit stays intact through winter, when birds and other animals eat them to survive. The seeds are passed unharmed in the animal's droppings. Since many Smilax colonies are single clones that have spread by rhizomes, both sexes may not be present at a site, in which case no fruit is formed.

Smilax is a very damage-tolerant plant capable of growing back from its rhizomes after being cut down or burned down by fire. This, coupled with the fact that birds and other small animals spread the seeds over large areas, makes the plants very hard to get rid of. It grows best in moist woodlands with a soil pH between 5 and 6. The seeds have the greatest chance of germinating after being exposed to a freeze.

Besides their berries providing an important food for birds and other animals during the winter, greenbrier plants also provide shelter for many other animals. The thorny thickets can effectively protect small animals from larger predators who cannot enter the prickly tangle. Deer and other herbivorous mammals will eat the foliage, as will some invertebrates such as Lepidoptera (butterflies and moths), which also often drink nectar from the flowers. Beetles too are known to consume leaves.

Among the Lepidoptera utilizing Smilax are Hesperiidae like the water snow flat (Tagiades litigiosa), Pieridae like the small grass yellow (Eurema smilax), or moths like the peculiar and sometimes flightless genus Thyrocopa. But particularly fond of greenbriers are certain Nymphalidae caterpillars, for example those of:
 * Faunis – faun butterflies
 * Kaniska canace – blue admiral (on China smilax, S. china)
 * Phalanta phalantha – common leopard (on S. tetragona)

Uses
An extract from the roots of some species – most significantly Jamaican sarsaparilla (S. ornata) – is used to make the sarsaparilla drink and other root beers, as well as herbal drinks like the popular Baba Roots from Jamaica. Two species, S. domingensis and S. havanensis, are used in a traditional soda-like Cuban beverage called pru. The roots may also be used in soups or stews. The young shoots can be eaten raw or cooked and are said to taste like asparagus, and the berries can be eaten both raw and cooked. Stuffed smilax pancake, or fúlíng jiābǐng, is a traditional snack from the Beijing region. S. glabra is used in Chinese herbology. It is also a key ingredient in the Chinese medical dessert guīlínggāo, which makes use of its property to set certain kinds of jelly.

The powdered roots of Jamaican sarsaparilla are known as ''Rad. Sarzae. Jam.'' in pharmacy and are used as a traditional medicine for gout in Latin American countries. Köhler's Medicinal Plants of 1887 discusses the American sarsaparilla (S. aristolochiifolia), but as early as about 1569, in his treatise devoted to syphilis, the Persian scholar Imad al-Din Mahmud ibn Mas‘ud Shirazi gave a detailed evaluation of the medical properties of chinaroot.

Diosgenin, a steroidal sapogenin, is reported from S. menispermoidea. Other active compounds reported from various greenbrier species are parillin (also sarsaparillin or smilacin), sarsapic acid, sarsapogenin and sarsaponin.

Due to the nectar-rich flowers, species like S. medica and S. officinalis are also useful honey plants.

The common floral decoration sometimes known as “smilax” is Asparagus asparagoides, which looks similar to Smilax but is from a different family.

title: Smilax


text:
Talk:Boom

 * It was decided that we don't want articles on all onomatopoeia, so a link to explosion is unnecessary.

Boom braids
There is also the existence of recent ladies hair extensions which is also known as boom can mostly be found in the country Nigeria and is currently used by both young and old in the country Adebayo christianah (talk) 12:00, 1 June 2018 (UTC)

title: Talk:Boom


text:
Class variable

In class-based, object-oriented programming, a class variable is a variable defined in a class of which a single copy exists, regardless of how many instances of the class exist.

A class variable is not an instance variable. It is a special type of class attribute (or class property, field, or data member). The same dichotomy between instance and class members applies to methods ("member functions") as well; a class may have both instance methods and class methods.

Static member variables and static member functions
In some languages, class variables and class methods are either statically resolved, not via dynamic dispatch, or their memory statically allocated at compile time (once for the entire class, as static variables), not dynamically allocated at run time (at every instantiation of an object). In other cases, however, either or both of these are dynamic. For example, if classes can be dynamically defined (at run time), class variables of these classes are allocated dynamically when the class is defined, and in some languages class methods are also dispatched dynamically.

Thus in some languages, static member variable or static member function are used synonymously with or in place of "class variable" or "class function", but these are not synonymous across languages. These terms are commonly used in Java, C#, and C++, where class variables and class methods are declared with the  keyword, and referred to  as static member variables or static member functions.

C++
In this C++ example, the class variable  is incremented on each call to the constructor, so that   always holds the number of Requests that have been constructed, and each new Request object is given a   in sequential order. Since  is a class variable, there is only one object  ; in contrast, each Request object contains its own distinct   field.

Also note that the variable  is initialized only once.

Python
In the above Python code, it does not provide much information as there is only class variable in the Dog class that provide the vertebrate group of dog as mammals. In instance variable, you could customize your own object (in this case, dog_1) by having one or more instance variables in the Dog class.

title: Class variable


text:
Talk:Class variable

Shared across instances
not sure where i'm supposed to put this, top or bottom, but this is an incorrect definition. in many oop languages, including c# and java, a class member variable or (class variable) for short is instance agnostic. e.g. it can either be a static or an instance variable. can someone fix this? -bc —Preceding unsigned comment added by 64.125.183.186 (talk) 18:53, 25 June 2010 (UTC)

 * fuck it. i fixed it. vera, your definition here is incorrect. - bc —Preceding unsigned comment added by 76.95.140.83 (talk) 20:50, 3 July 2010 (UTC)

 * Actually, class variable values are by definition shared by all instances of a class, and instance variables can never be class variables. See for an explanation of this for Java and  for a Python one. Even Objective C, which does not have a dedicated class variable syntax, recognizes the concept of class variables as distinct from instance variables in its runtime reference at . I will edit the article to remove any confusion about this and add citations. Links to references for other object-oriented languages' use of the "class variable" term would be very welcome, particularly links to C# and C++ references. -cph --173.226.146.65 (talk) 18:49, 21 October 2010 (UTC)

2003 edits
Vera Cruz, please hold your horses on these multiple edits within a short time span. This is neither the correct name for this article nor the correct definition.

The correct name is class data member and in the the definition it should be made clear that when you say all instances share the member that we are not talking about static members, and indicate that static members have one instance across all instances of the class. Mintguy — Preceding undated comment added 16:20, 16 January 2003

 * I see what you're doing now. But I think class variable is the Java name for the term, static data member is the C++ name for the term. I'm not sure what the correct OOP name is. Mintguy — Preceding undated comment added 16:26, 16 January 2003

 * Im going to go play chess now. You should use my talk page as Im likely to miss talk on wiki pages. You should also request that wikipedia install a bbs and chatrooms Vera Cruz — Preceding undated comment added 16:29, 16 January 2003

"Static field" listed at Redirects for discussion
A discussion is taking place to address the redirect Static field. The discussion will occur at Redirects for discussion/Log/2021 June 17 until a consensus is reached, and readers of this page are welcome to contribute to the discussion.  - Jay (Talk) 07:16, 18 June 2021 (UTC)

title: Talk:Class variable


text:
Smilax sect. Nemexia

'Smilax'' sect. Nemexia''' is a section of plants in the family Smilacaceae. It consists of the herbaceous plants within the genus Smilax. Smilax species fall into two groups with distinctive morphologies: one group has woody perennial stems with thorns and a vining habit, while the other group has herbaceous stems that die back to the ground each winter. S. sect. Nemexia is the taxon that comprises the herbaceous species. In the past it was often a genus of its own under the name Nemexia and taxonomists still need further study of the species of Smilax to determine its proper rank. However the widely accepted taxonomic system of the Flora of North America does not recognize Nemexia, nor does the AP-site. Thus Nemexia is not currently considered an accepted genus taxon by most plant taxonomists.

The plants in Smilax, are called carrion flowers for their malodorous flowers and those plants included in section Nemexia also have flowers that smell like rotten meat. The herbaceous species have greenish-yellow flowers and bloom in spring, they are fly pollinated.

Phylogenetic relationships
Cladistic analysis among several members of the section was carried out in 2005 on several gene sequences, including the plastid trnL-F and rpl16 sequences and the nuclear internal transcribed spacer. The eastern North American species in the morphologically variable S. herbacea complex form a sister group to the western North American S. jamesii. The analysis did not conclusively clarify whether the S. herbacea complex should be recognized as different species. The two East Asian species, S. riparia and S. nipponica, formed two well-defined clades. It is hypothesized that the ancestor of this section evolved in Asia and spread to North America via the Bering Strait land bridge.

title: Smilax sect. Nemexia


text:
List of populated places in Nigeria

This is a list of populated places in Nigeria. Cities in bold are among the fourteenth-most populous in the country (covered in more detail at List of Nigerian cities by population):

Cities

 * Aba
 * Abakaliki
 * Abeokuta
 * Abonnema
 * Abuja
 * Ado Ekiti
 * Afikpo
 * Akpawfu
 * Akure
 * Asaba
 * Awgu
 * Awka
 * Bauchi
 * Batagarawa
 * Benin City
 * Bida
 * Birnin Kebbi
 * Buguma
 * Calabar
 * Damaturu
 * Dutse
 * Ede
 * Eket
 * Enugu
 * Gombe
 * Gusau
 * Ibadan
 * Ife
 * Ikeja
 * Ikirun
 * Ikot-Abasi
 * Ikot Ekpene
 * Ilorin
 * Iwo
 * Jalingo
 * Jebba
 * Jimeta
 * Jos
 * Kabba
 * Kaduna
 * Kano
 * Katsina
 * Karu
 * Kontagora
 * Kutigi
 * Kumariya
 * Lafia
 * Lagos
 * Lekki
 * Lokoja
 * Maiduguri
 * Makurdi
 * Minna
 * Nnewi
 * Nsukka
 * Offa
 * Ogbomoso
 * Onitsha
 * Okene
 * Ogaminana
 * Omu-Aran
 * Ondo City
 * Oron
 * Oshogbo
 * Owerri
 * Owo
 * Orlu
 * Oyo
 * Port Harcourt
 * Potiskum
 * Sokoto
 * Suleja
 * Umuahia
 * Uyo
 * Warri
 * Wukari
 * Yenagoa
 * Yola
 * Zaria

title: List of populated places in Nigeria


text:
List of two-dimensional geometric shapes

This is a list of two-dimensional geometric shapes in Euclidean and other geometries. For mathematical objects in more dimensions, see list of mathematical shapes. For a broader scope, see list of shapes.

Generally composed of straight line segments

 * Angle
 * Balbis
 * Concave polygon
 * Constructible polygon
 * Convex polygon
 * Cyclic polygon
 * Equiangular polygon
 * Equilateral polygon
 * Penrose tile
 * Polyform
 * Regular polygon
 * Simple polygon
 * Tangential polygon

Polygons with specific numbers of sides

 * Henagon – 1 side
 * Digon – 2 sides
 * Triangle – 3 sides
 * Acute triangle
 * Equilateral triangle
 * Heptagonal triangle
 * Isosceles triangle
 * Golden Triangle
 * Obtuse triangle
 * Rational triangle
 * Heronian triangle
 * Pythagorean triangle
 * Isosceles heronian triangle
 * Right triangle
 * 30-60-90 triangle
 * Isosceles right triangle
 * Kepler triangle
 * Scalene triangle
 * Quadrilateral – 4 sides
 * Cyclic quadrilateral
 * Kite
 * Parallelogram
 * Rhombus (equilateral parallelogram)
 * Lozenge
 * Rhomboid
 * Rectangle
 * Square (regular quadrilateral)
 * Tangential quadrilateral
 * Trapezoid
 * Isosceles trapezoid
 * Pentagon – 5 sides
 * Hexagon – 6 sides
 * Lemoine hexagon
 * Heptagon – 7 sides
 * Octagon – 8 sides
 * Nonagon – 9 sides
 * Decagon – 10 sides
 * Hendecagon – 11 sides
 * Dodecagon – 12 sides
 * Tridecagon – 13 sides
 * Tetradecagon – 14 sides
 * Pentadecagon – 15 sides
 * Hexadecagon – 16 sides
 * Heptadecagon – 17 sides
 * Octadecagon – 18 sides
 * Enneadecagon – 19 sides
 * Icosagon – 20 sides
 * Icosikaihenagon - 21 sides
 * Icosikaidigon - 22 sides
 * Icositrigon - 23 sides
 * Icositetragon - 24 sides
 * Icosikaipentagon - 25 sides
 * Icosikaihexagon - 26 sides
 * Icosikaiheptagon - 27 sides
 * Icosikaioctagon - 28 sides
 * Icosikaienneagon - 29 sides
 * Triacontagon - 30 sides
 * Tetracontagon - 40 sides
 * Pentacontagon - 50 sides
 * Hexacontagon - 60 sides
 * Heptacontagon - 70 sides
 * Octacontagon - 80 sides
 * Enneacontagon - 90 sides
 * Hectogon - 100 sides
 * Dihectogon - 200 sides
 * Trihectogon - 300 sides
 * Tetrahectogon - 400 sides
 * Pentahectogon - 500 sides
 * Hexahectogon - 600 sides
 * Heptahectogon - 700 sides
 * Octahectogon - 800 sides
 * Enneahectogon - 900 sides
 * Chiliagon - 1,000 sides
 * Myriagon - 10,000 sides
 * Megagon - 1,000,000 sides
 * Star polygon – there are multiple types of stars
 * Pentagram - star polygon with 5 sides
 * Hexagram – star polygon with 6 sides
 * Star of David (example)
 * Heptagram – star polygon with 7 sides
 * Octagram – star polygon with 8 sides
 * Star of Lakshmi (example)
 * Enneagram - star polygon with 9 sides
 * Decagram - star polygon with 10 sides
 * Hendecagram - star polygon with 11 sides
 * Dodecagram - star polygon with 12 sides
 * Apeirogon - generalized polygon with countably infinite set of sides

Composed of circular arcs

 * Annulus
 * Arbelos
 * Circle
 * Archimedes' twin circles
 * Bankoff circle
 * Circular triangle
 * Reuleaux triangle
 * Circumcircle
 * Disc
 * Incircle and excircles of a triangle
 * Nine-point circle
 * Circular sector
 * Circular segment
 * Crescent
 * Lens, vesica piscis (fish bladder)
 * Lune
 * Quatrefoil
 * Reuleaux polygon
 * Reuleaux triangle
 * Salinon
 * Semicircle
 * Tomahawk
 * Trefoil
 * Triquetra
 * Heart

Not composed of circular arcs

 * Archimedean spiral
 * Astroid
 * Cardioid
 * Deltoid
 * Ellipse

 * Heartagon
 * Various lemniscates
 * Oval
 * Cartesian oval
 * Cassini oval
 * Oval of Booth
 * Ovoid – similar to an oval
 * Superellipse
 * Taijitu
 * Tomoe
 * Magatama


text:
Miner Willy

Miner Willy is the protagonist in a series of platform games for the ZX Spectrum, MSX, Amstrad CPC and the Commodore 64 home computers. The first two games - Manic Miner and Jet Set Willy were written by Matthew Smith during the early 1980s.

The Willy saga was to be a trilogy and a third game in the series was planned, Miner Willy Meets The Taxman.

The series started in 1983 with the release of Manic Miner, and was followed up a year later with Jet Set Willy and Jet Set Willy II. Another game in the series, The Perils of Willy, was released solely for the VIC-20. Andre's Night Off was published as a type-in listing in the June 1984 issue of Computer & Video Games. In addition, quite a few unofficial sequels, remakes, homages and updates have been released.

Games in the series

 * Manic Miner (1983), Bug-Byte / Software Projects
 * Jet Set Willy (1984), Software Projects
 * The Perils of Willy (1984), Software Projects
 * Andre's Night Off (1984), Matthew Smith
 * Jet Set Willy II (1985), Software Projects

title: Miner Willy