Difference between revisions of "Java/C3/Static-Variables/English"
Nancyvarkey (Talk | contribs) |
|||
Line 20: | Line 20: | ||
'''Learning Objectives''' | '''Learning Objectives''' | ||
− | * What are static variables | + | * What are '''static variables''' |
− | * Creating''' ''' | + | * Creating''' static variables''' |
− | * How to | + | * How to use''' static variables''' |
Line 29: | Line 29: | ||
* What are''' static variables''' | * What are''' static variables''' | ||
* Creating''' static variables '''and | * Creating''' static variables '''and | ||
− | * How to | + | * How to use''' static variables''' |
− | + | ||
− | + | ||
|- | |- | ||
Line 48: | Line 46: | ||
* '''JDK 1.7 '''and | * '''JDK 1.7 '''and | ||
* '''Eclipse 4.3.1''' | * '''Eclipse 4.3.1''' | ||
− | |||
− | |||
|- | |- | ||
Line 58: | Line 54: | ||
* Basic knowledge of '''Java''' and '''Eclipse IDE''' | * Basic knowledge of '''Java''' and '''Eclipse IDE''' | ||
* Knowledge of classes, objects and instance variables | * Knowledge of classes, objects and instance variables | ||
− | * For relevant tutorials, please visit http://www.spoken-tutorial.org | + | * For relevant tutorials, please visit |
+ | :http://www.spoken-tutorial.org | ||
| style="border:1pt solid #000001;padding-top:0cm;padding-bottom:0cm;padding-left:0.191cm;padding-right:0.191cm;"| To follow this tutorial, you must have knowledge of basics of''' Java''' and''' Eclipse IDE.''' | | style="border:1pt solid #000001;padding-top:0cm;padding-bottom:0cm;padding-left:0.191cm;padding-right:0.191cm;"| To follow this tutorial, you must have knowledge of basics of''' Java''' and''' Eclipse IDE.''' | ||
− | You should also have the knowledge of''' classes, objects '''and''' instance variables''' in''' Java.''' | + | You should also have the knowledge of''' classes, objects ''' |
+ | |||
+ | and''' instance variables''' in''' Java.''' | ||
If not, for relevant''' Java '''tutorials, please visit the link shown. | If not, for relevant''' Java '''tutorials, please visit the link shown. | ||
Line 72: | Line 71: | ||
'''What is a static variable?''' | '''What is a static variable?''' | ||
− | * A '''static variable''' is a variable which is associated with the entire '''class''' | + | * A '''static variable''' is a variable which is associated |
+ | : with the entire '''class''' | ||
* It is also called a '''class variable''' | * It is also called a '''class variable''' | ||
− | * It is declared using the '''static''' | + | * It is declared using the '''static keyword''' |
Line 87: | Line 87: | ||
|- | |- | ||
| style="border-top:none;border-bottom:1pt solid #000001;border-left:1pt solid #000001;border-right:1pt solid #000001;padding-top:0cm;padding-bottom:0cm;padding-left:0.191cm;padding-right:0.191cm;"| | | style="border-top:none;border-bottom:1pt solid #000001;border-left:1pt solid #000001;border-right:1pt solid #000001;padding-top:0cm;padding-bottom:0cm;padding-left:0.191cm;padding-right:0.191cm;"| | ||
− | | style="border-top:none;border-bottom:1pt solid #000001;border-left:1pt solid #000001;border-right:1pt solid #000001;padding-top:0cm;padding-bottom:0cm;padding-left:0.191cm;padding-right:0.191cm;"| We have seen about static variable briefly in the earlier tutorial. | + | | style="border-top:none;border-bottom:1pt solid #000001;border-left:1pt solid #000001;border-right:1pt solid #000001;padding-top:0cm;padding-bottom:0cm;padding-left:0.191cm;padding-right:0.191cm;"| We have seen about '''static variable''' briefly in the earlier tutorial. |
Line 93: | Line 93: | ||
|- | |- | ||
− | | style="border-top:none;border-bottom:1pt solid #000001;border-left:1pt solid #000001;border-right:1pt solid #000001;padding-top:0cm;padding-bottom:0cm;padding-left:0.191cm;padding-right:0.191cm;"| In Eclipse IDE, create a class StaticVariableDemo | + | | style="border-top:none;border-bottom:1pt solid #000001;border-left:1pt solid #000001;border-right:1pt solid #000001;padding-top:0cm;padding-bottom:0cm;padding-left:0.191cm;padding-right:0.191cm;"| In '''Eclipse IDE''', create a '''class StaticVariableDemo''' |
− | | style="border-top:none;border-bottom:1pt solid #000001;border-left:1pt solid #000001;border-right:1pt solid #000001;padding-top:0cm;padding-bottom:0cm;padding-left:0.191cm;padding-right:0.191cm;"| Now we will switch to''' Eclipse''' and create a new project called '''StaticVariableDemo'''. | + | | style="border-top:none;border-bottom:1pt solid #000001;border-left:1pt solid #000001;border-right:1pt solid #000001;padding-top:0cm;padding-bottom:0cm;padding-left:0.191cm;padding-right:0.191cm;"| Now we will switch to''' Eclipse''' and create a new '''project''' called '''StaticVariableDemo'''. |
− | Inside this project we will create the necessary classes to demonstrate the usage of''' Static variables.''' | + | Inside this '''project''' we will create the necessary classes to demonstrate the usage of''' Static variables.''' |
|- | |- | ||
− | | style="border-top:none;border-bottom:1pt solid #000001;border-left:1pt solid #000001;border-right:1pt solid #000001;padding-top:0cm;padding-bottom:0cm;padding-left:0.191cm;padding-right:0.191cm;"| Right click on '''src''' folder -> ''' | + | | style="border-top:none;border-bottom:1pt solid #000001;border-left:1pt solid #000001;border-right:1pt solid #000001;padding-top:0cm;padding-bottom:0cm;padding-left:0.191cm;padding-right:0.191cm;"| Right-click on '''src''' folder -> '''New '''-> '''Class''' |
+ | |||
+ | Type '''StudentEnroll''' and hit '''Enter''' | ||
Line 109: | Line 111: | ||
Copy and paste the code | Copy and paste the code | ||
− | | style="border-top:none;border-bottom:1pt solid #000001;border-left:1pt solid #000001;border-right:1pt solid #000001;padding-top:0cm;padding-bottom:0cm;padding-left:0.191cm;padding-right:0.191cm;"| So right click on '''src''' folder and click ''' | + | | style="border-top:none;border-bottom:1pt solid #000001;border-left:1pt solid #000001;border-right:1pt solid #000001;padding-top:0cm;padding-bottom:0cm;padding-left:0.191cm;padding-right:0.191cm;"| So right click on '''src''' folder and click '''New '''-> '''Class''', and type the name of the class as''' StudentEnroll''' and press '''Enter'''. |
− | + | ||
− | + | ||
− | + | ||
|- | |- | ||
Line 140: | Line 139: | ||
− | '''Id''' is''' IT101. Branch''' is''' IT.''' | + | '''Id''' is''' IT101.''' |
+ | |||
+ | '''Branch''' is''' IT.''' | ||
Line 146: | Line 147: | ||
− | Similarly when the second student''' AMAL '''gets enrolled '''Total Count''' is updated to 2. | + | Similarly when the second student''' AMAL '''gets enrolled, '''Total Count''' is updated to 2. |
Line 152: | Line 153: | ||
− | Now we can identify that the variable''' Total Count''' is common to all the objects and has a single value. | + | Now we can identify that the variable''' Total Count''' is common to all the '''objects''' and has a single value. |
Line 158: | Line 159: | ||
− | We can also see that the variables''' Name, Id''' and''' Branch''' have their own copies for each object. | + | We can also see that the variables''' Name, Id''' and''' Branch''' have their own copies for each '''object'''. |
− | Also they have specific values for each object. | + | Also they have specific values for each '''object'''. |
So these variables can be treated as''' instance variables''' | So these variables can be treated as''' instance variables''' | ||
− | |||
− | |||
− | |||
|- | |- | ||
Line 179: | Line 177: | ||
| style="border-top:none;border-bottom:1pt solid #000001;border-left:1pt solid #000001;border-right:1pt solid #000001;padding-top:0cm;padding-bottom:0cm;padding-left:0.191cm;padding-right:0.191cm;"| Now let us look at the code representing the '''student enrollment class'''. | | style="border-top:none;border-bottom:1pt solid #000001;border-left:1pt solid #000001;border-right:1pt solid #000001;padding-top:0cm;padding-bottom:0cm;padding-left:0.191cm;padding-right:0.191cm;"| Now let us look at the code representing the '''student enrollment class'''. | ||
− | The name of the class is''' StudentEnroll.''' | + | The name of the '''class''' is''' StudentEnroll.''' |
− | The instance variables are declared as''' id, name''' and''' branch.''' | + | The '''instance variables''' are declared as''' id, name''' and''' branch.''' |
− | The variable''' count''' is declared as static since it is common to the whole class. | + | The variable''' count''' is declared as '''static''' since it is common to the whole '''class'''. |
|- | |- | ||
| style="border:1pt solid #000001;padding-top:0cm;padding-bottom:0cm;padding-left:0.191cm;padding-right:0.191cm;"| '''Slide 7(A)''' | | style="border:1pt solid #000001;padding-top:0cm;padding-bottom:0cm;padding-left:0.191cm;padding-right:0.191cm;"| '''Slide 7(A)''' | ||
− | When a class is loaded | + | When a '''class''' is loaded- |
− | * A '''static variable''' in a '''class''' occupies a single fixed memory location | + | * A '''static variable''' in a '''class''' occupies |
− | * '''Instance variables''' of each '''object''' occupy separate memory locations | + | :a single fixed memory location |
+ | * '''Instance variables''' of each '''object''' occupy | ||
+ | :separate memory locations | ||
− | | style="border:1pt solid #000001;padding-top:0cm;padding-bottom:0cm;padding-left:0.191cm;padding-right:0.191cm;"| When a class is loaded | + | | style="border:1pt solid #000001;padding-top:0cm;padding-bottom:0cm;padding-left:0.191cm;padding-right:0.191cm;"| When a '''class''' is loaded a''' static variable''' occupies a single fixed memory location. |
− | + | Whereas '''Instance variables''' of each '''object''' occupy separate memory locations. | |
+ | |- | ||
+ | | style="border:1pt solid #000001;padding-top:0cm;padding-bottom:0cm;padding-left:0.191cm;padding-right:0.191cm;"| click on''' source ->''' | ||
− | + | Select''' Generate Constructor using Fields''' | |
− | ''' | + | Delete the''' super keyword''' |
+ | | style="border:1pt solid #000001;padding-top:0cm;padding-bottom:0cm;padding-left:0.191cm;padding-right:0.191cm;"| Now click on''' Source ->''' and select''' Generate Constructor using Fields,''' | ||
− | |||
− | |||
− | + | Delete the''' super keyword''' from the generated code. | |
− | Delete the''' super | + | |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
|- | |- | ||
Line 236: | Line 232: | ||
− | We also need to increment the value of the variable''' count''' by one every time an object is created. | + | We also need to increment the value of the variable''' count''' by one every time an '''object''' is created. |
− | So inside the constructor type | + | So inside the '''constructor''' type- |
'''count ++ semicolon''' | '''count ++ semicolon''' | ||
Line 250: | Line 246: | ||
} | } | ||
− | | style="border:1pt solid #000001;padding-top:0cm;padding-bottom:0cm;padding-left:0.191cm;padding-right:0.191cm;"| Now we will add a | + | | style="border:1pt solid #000001;padding-top:0cm;padding-bottom:0cm;padding-left:0.191cm;padding-right:0.191cm;"| Now we will add a '''method showData'''( ) to this '''class''' to print the the values of all the variables. |
So type''' public void showData( )''' | So type''' public void showData( )''' | ||
Line 257: | Line 253: | ||
|- | |- | ||
− | | style="border:1pt solid #000001;padding-top:0cm;padding-bottom:0cm;padding-left:0.191cm;padding-right:0.191cm;"| Right click on the '''default package,''' click new-> class | + | | style="border:1pt solid #000001;padding-top:0cm;padding-bottom:0cm;padding-left:0.191cm;padding-right:0.191cm;"| Right click on the '''default package,''' click new-> class |
− | | style="border:1pt solid #000001;padding-top:0cm;padding-bottom:0cm;padding-left:0.191cm;padding-right:0.191cm;"| Now right click on the '''default package''' click ''' | + | |
+ | And then type name as''' Demo'''. | ||
+ | | style="border:1pt solid #000001;padding-top:0cm;padding-bottom:0cm;padding-left:0.191cm;padding-right:0.191cm;"| Now right-click on the '''default package''' click '''New '''-> '''Class''' and then type name as''' Demo.''' | ||
− | Inside this class we will have the '''main''' | + | Inside this '''class,''' we will have the '''main method'''. |
Line 316: | Line 314: | ||
− | Now we can pass the values of different arguments | + | Now we can pass the values of different '''arguments'''. |
Line 322: | Line 320: | ||
− | Now let us invoke the''' showData''' method to print the enrollment details. | + | Now let us invoke the''' showData''' method to print the enrollment details. |
− | + | So type '''s1.showData( )''' | |
− | '''s1.showData( )''' | + | |
Line 334: | Line 331: | ||
− | Also note that the value of the number of student enrollments is 1 | + | Also note that the value of the number of student enrollments is 1. |
− | This is because we have created only 1 object. | + | This is because we have created only 1 '''object'''. |
− | Now type the following code to create one more | + | Now type the following code to create one more '''object s2.''' |
− | The''' showData''' | + | The''' showData method''' can be called once again using''' s2.''' |
Line 355: | Line 352: | ||
− | Now create one more | + | Now create one more '''object s3.''' |
− | Now Let us Invoke the''' showData''' | + | Now Let us Invoke the''' showData method''' again using''' s3.''' |
Line 364: | Line 361: | ||
− | We can see that the values of instance variables corresponding to''' s3''' get printed. | + | We can see that the values of '''instance variables''' corresponding to''' s3''' get printed. |
− | Also note that the value of | + | Also note that the value of''' number of student''' enrollments is now updated to 3 in all the cases. |
− | Now we can understand that value of number of student enrollments is common to all the objects. | + | Now we can understand that value of number of student enrollments is common to all the '''objects'''. |
|- | |- | ||
Line 377: | Line 374: | ||
'''Static Variables - As Constants''' | '''Static Variables - As Constants''' | ||
− | * The '''static ''' | + | * The '''static modifier''' is also used |
− | * It is done to define a '''constant''' which is common to the entire class | + | :along with the''' final modifier''' |
− | * The names of constant variables are spelled in upper-case letters | + | * It is done to define a '''constant''' which is |
+ | :common to the entire '''class''' | ||
+ | * The names of '''constant variables''' are | ||
+ | :spelled in upper-case letters | ||
Line 385: | Line 385: | ||
− | The''' static''' | + | The''' static modifier''' is also used along with the '''final modifier'''. |
− | It is done to define a''' constant''' which is common to the entire class. | + | It is done to define a''' constant''' which is common to the entire '''class'''. |
− | + | Conventionally, the names of such '''constant variables''' are spelt in uppercase letters. | |
− | + | ||
− | Conventionally, the names of such constant variables are | + | |
|- | |- | ||
Line 411: | Line 409: | ||
Point to '''ORGANISATION: IITB''' | Point to '''ORGANISATION: IITB''' | ||
− | | style="border:1pt solid #000001;padding-top:0cm;padding-bottom:0cm;padding-left:0.191cm;padding-right:0.191cm;"| Now come back to eclipse. | + | | style="border:1pt solid #000001;padding-top:0cm;padding-bottom:0cm;padding-left:0.191cm;padding-right:0.191cm;"| Now come back to '''eclipse'''. |
− | Open the '''StudentEnroll''' | + | Open the '''StudentEnroll class''' and type the '''variable declaration''' as |
Line 420: | Line 418: | ||
− | As an example, if all the students are getting enrolled to the same organisation say''' IITB'''. | + | As an example, if all the students are getting enrolled to the same organisation, say''' IITB'''. |
− | It can be represented by using a constant static variable say''' ORG_NAME.''' | + | It can be represented by using a '''constant static variable''' say''' ORG_NAME.''' |
Line 429: | Line 427: | ||
− | Usually we declare such constants | + | Usually we declare such '''constants''' with a '''public '''visibility. |
− | + | ||
− | with a '''public '''visibility. | + | |
− | + | ||
− | + | ||
− | + | ||
|- | |- | ||
| style="border-top:none;border-bottom:1pt solid #000001;border-left:1pt solid #000001;border-right:1pt solid #000001;padding-top:0cm;padding-bottom:0cm;padding-left:0.191cm;padding-right:0.191cm;"| Click on '''Run''' icon | | style="border-top:none;border-bottom:1pt solid #000001;border-left:1pt solid #000001;border-right:1pt solid #000001;padding-top:0cm;padding-bottom:0cm;padding-left:0.191cm;padding-right:0.191cm;"| Click on '''Run''' icon | ||
− | | style="border-top:none;border-bottom:1pt solid #000001;border-left:1pt solid #000001;border-right:1pt solid #000001;padding-top:0cm;padding-bottom:0cm;padding-left:0.191cm;padding-right:0.191cm;"| Now go to the '''Demo class '''and type the following code | + | | style="border-top:none;border-bottom:1pt solid #000001;border-left:1pt solid #000001;border-right:1pt solid #000001;padding-top:0cm;padding-bottom:0cm;padding-left:0.191cm;padding-right:0.191cm;"| Now go to the '''Demo class '''and type the following code. |
− | Here you can see that '''ORG_NAME '''is accessed by using its class name '''StudentEnroll.''' | + | Here you can see that '''ORG_NAME '''is accessed by using its '''class''' name '''StudentEnroll.''' |
|- | |- | ||
| style="border-top:none;border-bottom:1pt solid #000001;border-left:1pt solid #000001;border-right:1pt solid #000001;padding-top:0cm;padding-bottom:0cm;padding-left:0.191cm;padding-right:0.191cm;"| Click on '''Run''' icon | | style="border-top:none;border-bottom:1pt solid #000001;border-left:1pt solid #000001;border-right:1pt solid #000001;padding-top:0cm;padding-bottom:0cm;padding-left:0.191cm;padding-right:0.191cm;"| Click on '''Run''' icon | ||
− | | style="border-top:none;border-bottom:1pt solid #000001;border-left:1pt solid #000001;border-right:1pt solid #000001;padding-top:0cm;padding-bottom:0cm;padding-left:0.191cm;padding-right:0.191cm;"| | + | | style="border-top:none;border-bottom:1pt solid #000001;border-left:1pt solid #000001;border-right:1pt solid #000001;padding-top:0cm;padding-bottom:0cm;padding-left:0.191cm;padding-right:0.191cm;"| Now run the '''Demo''' Program again. |
− | + | ||
− | Now run the '''Demo''' Program again. | + | |
We can see that the '''ORGANISATION''' name is getting printed as''' IITB.''' | We can see that the '''ORGANISATION''' name is getting printed as''' IITB.''' | ||
Line 464: | Line 455: | ||
In this tutorial we have learnt about | In this tutorial we have learnt about | ||
− | * What is a static variable and when it is used | + | * What is a '''static variable''' and when it is used |
− | * How to create and invoke the static variables | + | * How to create and invoke the '''static variables''' |
− | + | ||
− | + | ||
|- | |- | ||
Line 476: | Line 465: | ||
− | Design a | + | Design a '''class CarService''' to represent a Car Service Station. |
− | This class should contain variables to represent the following details: | + | This '''class''' should contain variables to represent the following details: |
− | '''Name''' of the Service Station | + | *'''Name''' of the Service Station |
+ | *Car '''make''', '''model''' and '''reg. no''' - which are in for service | ||
+ | *'''No. of Cars in''' for Service | ||
+ | *Identify the '''instance variables''' and '''static variables''' | ||
+ | *Declare them using suitable keywords | ||
+ | *Define a''' constructor''' to initialise the values for Car '''make, model''' and '''regno''' | ||
+ | *Define a '''method show( )''' to print the values of all the variables | ||
− | + | Also create a''' Demo class''' containing the '''main method''' to verify the results | |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
i.e | i.e | ||
− | + | *Create a few '''objects''' of''' CarService''' | |
− | + | *Invoke the''' show( ) method''' using these '''objects''' | |
− | Create a few objects of''' CarService''' | + | *Also access the '''static variables''' directly using the '''class''' name. |
− | + | ||
− | + | ||
− | Invoke the''' show( ) ''' | + | |
− | + | ||
− | + | ||
− | Also access the static variables directly using the class name. | + | |
|- | |- | ||
Line 534: | Line 504: | ||
| style="border:1pt solid #000001;padding-top:0cm;padding-bottom:0cm;padding-left:0.191cm;padding-right:0.191cm;"| The Spoken Tutorial Project Team | | style="border:1pt solid #000001;padding-top:0cm;padding-bottom:0cm;padding-left:0.191cm;padding-right:0.191cm;"| The Spoken Tutorial Project Team | ||
− | + | * Conducts workshops using spoken tutorials and | |
− | + | * Gives certificates on passing the online tests | |
− | + | ||
Latest revision as of 15:27, 12 January 2017
Title of script: Static Variables
Author: Joms Antony
Keywords: Static Variables, Class variables, Instance Variables, static keyword, final keyword, static constants, video tutorial
|
|
Slide 1 | Welcome to the Spoken Tutorial on Static Variables. |
Slide 2
Learning Objectives
|
In this tutorial we will learn about:
|
Slide 3
Software Requirements
|
Here we are using
|
Slide 4
Prerequisites
|
To follow this tutorial, you must have knowledge of basics of Java and Eclipse IDE.
You should also have the knowledge of classes, objects and instance variables in Java. If not, for relevant Java tutorials, please visit the link shown. |
Slide 5
What is a static variable?
|
A static variable is a variable which is associated with the entire class.
|
We have seen about static variable briefly in the earlier tutorial.
| |
In Eclipse IDE, create a class StaticVariableDemo
|
Now we will switch to Eclipse and create a new project called StaticVariableDemo.
|
Right-click on src folder -> New -> Class
Type StudentEnroll and hit Enter
Copy and paste the code |
So right click on src folder and click New -> Class, and type the name of the class as StudentEnroll and press Enter. |
Let us illustrate the usage of static variables with an example. | |
Slide 6
Static Variable-Example
|
Consider a class created to represent student enrollments in an organisation.
Branch is IT.
|
public class StudentEnroll {
private String id, name, branch; public static int count=0; } |
Now let us look at the code representing the student enrollment class.
The name of the class is StudentEnroll. The instance variables are declared as id, name and branch. The variable count is declared as static since it is common to the whole class. |
Slide 7(A)
When a class is loaded-
|
When a class is loaded a static variable occupies a single fixed memory location.
|
click on source ->
Select Generate Constructor using Fields
|
Now click on Source -> and select Generate Constructor using Fields,
|
Constructor code
this.id = id; this.name = name; this.branch = branch; count++; }
|
This constructor can initialise the values of the id, name and branch fields.
So inside the constructor type- count ++ semicolon |
Type, public void showData()
{// Copy the code below System.out.println(id+" " +name+" "+branch+" "+count); } |
Now we will add a method showData( ) to this class to print the the values of all the variables.
So type public void showData( ) within brackets type the following code to print the values of id, name, branch, total number of students enrolled. |
Right click on the default package, click new-> class
And then type name as Demo. |
Now right-click on the default package click New -> Class and then type name as Demo.
|
TypeSystem.out.println("Student Enrollment Data");
|
Now we need to print the Student Enrollment data.
So type s1.showData( )
|
Slide 9
Static Variables - As Constants
|
Come back to slides.
|
Come back to eclipse
public static final String ORG_NAME = “IITB”;
Highlight ORG_NAME and StudentEnroll Run the Demo program Point to ORGANISATION: IITB |
Now come back to eclipse.
|
Click on Run icon | Now go to the Demo class and type the following code.
|
Click on Run icon | Now run the Demo Program again.
We can see that the ORGANISATION name is getting printed as IITB. |
Slide 10
Summary
|
Let us summarize.
In this tutorial we have learnt about
|
Slide 11
Assignment |
As an Assignment
i.e
|
About Project
|
The video at the following link summarizes the Spoken Tutorial Project.
|
About Workshops
|
The Spoken Tutorial Project Team
|
About NMEICT
|
Spoken Tutorial Project is funded by the NMEICT, MHRD, Government of India.
|
Contributor slide
|
This script has been contributed by:
Department of Information Technology, Amal Jyothi College of Engineering
|