- Blog Categories
- Software Development
- Data Science
- AI/ML
- Marketing
- General
- MBA
- Management
- Legal
- Software Development Projects and Ideas
- 12 Computer Science Project Ideas
- 28 Beginner Software Projects
- Top 10 Engineering Project Ideas
- Top 10 Easy Final Year Projects
- Top 10 Mini Projects for Engineers
- 25 Best Django Project Ideas
- Top 20 MERN Stack Project Ideas
- Top 12 Real Time Projects
- Top 6 Major CSE Projects
- 12 Robotics Projects for All Levels
- Java Programming Concepts
- Abstract Class in Java and Methods
- Constructor Overloading in Java
- StringBuffer vs StringBuilder
- Java Identifiers: Syntax & Examples
- Types of Variables in Java Explained
- Composition in Java: Examples
- Append in Java: Implementation
- Loose Coupling vs Tight Coupling
- Integrity Constraints in DBMS
- Different Types of Operators Explained
- Career and Interview Preparation in IT
- Top 14 IT Courses for Jobs
- Top 20 Highest Paying Languages
- 23 Top CS Interview Q&A
- Best IT Jobs without Coding
- Software Engineer Salary in India
- 44 Agile Methodology Interview Q&A
- 10 Software Engineering Challenges
- Top 15 Tech's Daily Life Impact
- 10 Best Backends for React
- Cloud Computing Reference Models
- Web Development and Security
- Find Installed NPM Version
- Install Specific NPM Package Version
- Make API Calls in Angular
- Install Bootstrap in Angular
- Use Axios in React: Guide
- StrictMode in React: Usage
- 75 Cyber Security Research Topics
- Top 7 Languages for Ethical Hacking
- Top 20 Docker Commands
- Advantages of OOP
- Data Science Projects and Applications
- 42 Python Project Ideas for Beginners
- 13 Data Science Project Ideas
- 13 Data Structure Project Ideas
- 12 Real-World Python Applications
- Python Banking Project
- Data Science Course Eligibility
- Association Rule Mining Overview
- Cluster Analysis in Data Mining
- Classification in Data Mining
- KDD Process in Data Mining
- Data Structures and Algorithms
- Binary Tree Types Explained
- Binary Search Algorithm
- Sorting in Data Structure
- Binary Tree in Data Structure
- Binary Tree vs Binary Search Tree
- Recursion in Data Structure
- Data Structure Search Methods: Explained
- Binary Tree Interview Q&A
- Linear vs Binary Search
- Priority Queue Overview
- Python Programming and Tools
- Top 30 Python Pattern Programs
- List vs Tuple
- Python Free Online Course
- Method Overriding in Python
- Top 21 Python Developer Skills
- Reverse a Number in Python
- Switch Case Functions in Python
- Info Retrieval System Overview
- Reverse a Number in Python
- Real-World Python Applications
- Data Science Careers and Comparisons
- Data Analyst Salary in India
- Data Scientist Salary in India
- Free Excel Certification Course
- Actuary Salary in India
- Data Analyst Interview Guide
- Pandas Interview Guide
- Tableau Filters Explained
- Data Mining Techniques Overview
- Data Analytics Lifecycle Phases
- Data Science Vs Analytics Comparison
- Artificial Intelligence and Machine Learning Projects
- Exciting IoT Project Ideas
- 16 Exciting AI Project Ideas
- 45+ Interesting ML Project Ideas
- Exciting Deep Learning Projects
- 12 Intriguing Linear Regression Projects
- 13 Neural Network Projects
- 5 Exciting Image Processing Projects
- Top 8 Thrilling AWS Projects
- 12 Engaging AI Projects in Python
- NLP Projects for Beginners
- Concepts and Algorithms in AIML
- Basic CNN Architecture Explained
- 6 Types of Regression Models
- Data Preprocessing Steps
- Bagging vs Boosting in ML
- Multinomial Naive Bayes Overview
- Gini Index for Decision Trees
- Bayesian Network Example
- Bayes Theorem Guide
- Top 10 Dimensionality Reduction Techniques
- Neural Network Step-by-Step Guide
- Technical Guides and Comparisons
- Make a Chatbot in Python
- Compute Square Roots in Python
- Permutation vs Combination
- Image Segmentation Techniques
- Generative AI vs Traditional AI
- AI vs Human Intelligence
- Random Forest vs Decision Tree
- Neural Network Overview
- Perceptron Learning Algorithm
- Selection Sort Algorithm
- Career and Practical Applications in AIML
- AI Salary in India Overview
- Biological Neural Network Basics
- Top 10 AI Challenges
- Production System in AI
- Top 8 Raspberry Pi Alternatives
- Top 8 Open Source Projects
- 14 Raspberry Pi Project Ideas
- 15 MATLAB Project Ideas
- Top 10 Python NLP Libraries
- Naive Bayes Explained
- Digital Marketing Projects and Strategies
- 10 Best Digital Marketing Projects
- 17 Fun Social Media Projects
- Top 6 SEO Project Ideas
- Digital Marketing Case Studies
- Coca-Cola Marketing Strategy
- Nestle Marketing Strategy Analysis
- Zomato Marketing Strategy
- Monetize Instagram Guide
- Become a Successful Instagram Influencer
- 8 Best Lead Generation Techniques
- Digital Marketing Careers and Salaries
- Digital Marketing Salary in India
- Top 10 Highest Paying Marketing Jobs
- Highest Paying Digital Marketing Jobs
- SEO Salary in India
- Brand Manager Salary in India
- Content Writer Salary Guide
- Digital Marketing Executive Roles
- Career in Digital Marketing Guide
- Future of Digital Marketing
- MBA in Digital Marketing Overview
- Digital Marketing Techniques and Channels
- 9 Types of Digital Marketing Channels
- Top 10 Benefits of Marketing Branding
- 100 Best YouTube Channel Ideas
- YouTube Earnings in India
- 7 Reasons to Study Digital Marketing
- Top 10 Digital Marketing Objectives
- 10 Best Digital Marketing Blogs
- Top 5 Industries Using Digital Marketing
- Growth of Digital Marketing in India
- Top Career Options in Marketing
- Interview Preparation and Skills
- 73 Google Analytics Interview Q&A
- 56 Social Media Marketing Q&A
- 78 Google AdWords Interview Q&A
- Top 133 SEO Interview Q&A
- 27+ Digital Marketing Q&A
- Digital Marketing Free Course
- Top 9 Skills for PPC Analysts
- Movies with Successful Social Media Campaigns
- Marketing Communication Steps
- Top 10 Reasons to Be an Affiliate Marketer
- Career Options and Paths
- Top 25 Highest Paying Jobs India
- Top 25 Highest Paying Jobs World
- Top 10 Highest Paid Commerce Job
- Career Options After 12th Arts
- Top 7 Commerce Courses Without Maths
- Top 7 Career Options After PCB
- Best Career Options for Commerce
- Career Options After 12th CS
- Top 10 Career Options After 10th
- 8 Best Career Options After BA
- Projects and Academic Pursuits
- 17 Exciting Final Year Projects
- Top 12 Commerce Project Topics
- Top 13 BCA Project Ideas
- Career Options After 12th Science
- Top 15 CS Jobs in India
- 12 Best Career Options After M.Com
- 9 Best Career Options After B.Sc
- 7 Best Career Options After BCA
- 22 Best Career Options After MCA
- 16 Top Career Options After CE
- Courses and Certifications
- 10 Best Job-Oriented Courses
- Best Online Computer Courses
- Top 15 Trending Online Courses
- Top 19 High Salary Certificate Courses
- 21 Best Programming Courses for Jobs
- What is SGPA? Convert to CGPA
- GPA to Percentage Calculator
- Highest Salary Engineering Stream
- 15 Top Career Options After Engineering
- 6 Top Career Options After BBA
- Job Market and Interview Preparation
- Why Should You Be Hired: 5 Answers
- Top 10 Future Career Options
- Top 15 Highest Paid IT Jobs India
- 5 Common Guesstimate Interview Q&A
- Average CEO Salary: Top Paid CEOs
- Career Options in Political Science
- Top 15 Highest Paying Non-IT Jobs
- Cover Letter Examples for Jobs
- Top 5 Highest Paying Freelance Jobs
- Top 10 Highest Paying Companies India
- Career Options and Paths After MBA
- 20 Best Careers After B.Com
- Career Options After MBA Marketing
- Top 14 Careers After MBA In HR
- Top 10 Highest Paying HR Jobs India
- How to Become an Investment Banker
- Career Options After MBA - High Paying
- Scope of MBA in Operations Management
- Best MBA for Working Professionals India
- MBA After BA - Is It Right For You?
- Best Online MBA Courses India
- MBA Project Ideas and Topics
- 11 Exciting MBA HR Project Ideas
- Top 15 MBA Project Ideas
- 18 Exciting MBA Marketing Projects
- MBA Project Ideas: Consumer Behavior
- What is Brand Management?
- What is Holistic Marketing?
- What is Green Marketing?
- Intro to Organizational Behavior Model
- Tech Skills Every MBA Should Learn
- Most Demanding Short Term Courses MBA
- MBA Salary, Resume, and Skills
- MBA Salary in India
- HR Salary in India
- Investment Banker Salary India
- MBA Resume Samples
- Sample SOP for MBA
- Sample SOP for Internship
- 7 Ways MBA Helps Your Career
- Must-have Skills in Sales Career
- 8 Skills MBA Helps You Improve
- Top 20+ SAP FICO Interview Q&A
- MBA Specializations and Comparative Guides
- Why MBA After B.Tech? 5 Reasons
- How to Answer 'Why MBA After Engineering?'
- Why MBA in Finance
- MBA After BSc: 10 Reasons
- Which MBA Specialization to choose?
- Top 10 MBA Specializations
- MBA vs Masters: Which to Choose?
- Benefits of MBA After CA
- 5 Steps to Management Consultant
- 37 Must-Read HR Interview Q&A
- Fundamentals and Theories of Management
- What is Management? Objectives & Functions
- Nature and Scope of Management
- Decision Making in Management
- Management Process: Definition & Functions
- Importance of Management
- What are Motivation Theories?
- Tools of Financial Statement Analysis
- Negotiation Skills: Definition & Benefits
- Career Development in HRM
- Top 20 Must-Have HRM Policies
- Project and Supply Chain Management
- Top 20 Project Management Case Studies
- 10 Innovative Supply Chain Projects
- Latest Management Project Topics
- 10 Project Management Project Ideas
- 6 Types of Supply Chain Models
- Top 10 Advantages of SCM
- Top 10 Supply Chain Books
- What is Project Description?
- Top 10 Project Management Companies
- Best Project Management Courses Online
- Salaries and Career Paths in Management
- Project Manager Salary in India
- Average Product Manager Salary India
- Supply Chain Management Salary India
- Salary After BBA in India
- PGDM Salary in India
- Top 7 Career Options in Management
- CSPO Certification Cost
- Why Choose Product Management?
- Product Management in Pharma
- Product Design in Operations Management
- Industry-Specific Management and Case Studies
- Amazon Business Case Study
- Service Delivery Manager Job
- Product Management Examples
- Product Management in Automobiles
- Product Management in Banking
- Sample SOP for Business Management
- Video Game Design Components
- Top 5 Business Courses India
- Free Management Online Course
- SCM Interview Q&A
- Fundamentals and Types of Law
- Acceptance in Contract Law
- Offer in Contract Law
- 9 Types of Evidence
- Types of Law in India
- Introduction to Contract Law
- Negotiable Instrument Act
- Corporate Tax Basics
- Intellectual Property Law
- Workmen Compensation Explained
- Lawyer vs Advocate Difference
- Law Education and Courses
- LLM Subjects & Syllabus
- Corporate Law Subjects
- LLM Course Duration
- Top 10 Online LLM Courses
- Online LLM Degree
- Step-by-Step Guide to Studying Law
- Top 5 Law Books to Read
- Why Legal Studies?
- Pursuing a Career in Law
- How to Become Lawyer in India
- Career Options and Salaries in Law
- Career Options in Law India
- Corporate Lawyer Salary India
- How To Become a Corporate Lawyer
- Career in Law: Starting, Salary
- Career Opportunities: Corporate Law
- Business Lawyer: Role & Salary Info
- Average Lawyer Salary India
- Top Career Options for Lawyers
- Types of Lawyers in India
- Steps to Become SC Lawyer in India
- Tutorials
- Software Tutorials
- C Tutorials
- Recursion in C: Fibonacci Series
- Checking String Palindromes in C
- Prime Number Program in C
- Implementing Square Root in C
- Matrix Multiplication in C
- Understanding Double Data Type
- Factorial of a Number in C
- Structure of a C Program
- Building a Calculator Program in C
- Compiling C Programs on Linux
- Java Tutorials
- Handling String Input in Java
- Determining Even and Odd Numbers
- Prime Number Checker
- Sorting a String
- User-Defined Exceptions
- Understanding the Thread Life Cycle
- Swapping Two Numbers
- Using Final Classes
- Area of a Triangle
- Skills
- Explore Skills
- Management Skills
- Software Engineering
- JavaScript
- Data Structure
- React.js
- Core Java
- Node.js
- Blockchain
- SQL
- Full stack development
- Devops
- NFT
- BigData
- Cyber Security
- Cloud Computing
- Database Design with MySQL
- Cryptocurrency
- Python
- Digital Marketings
- Advertising
- Influencer Marketing
- Search Engine Optimization
- Performance Marketing
- Search Engine Marketing
- Email Marketing
- Content Marketing
- Social Media Marketing
- Display Advertising
- Marketing Analytics
- Web Analytics
- Affiliate Marketing
- MBA
- MBA in Finance
- MBA in HR
- MBA in Marketing
- MBA in Business Analytics
- MBA in Operations Management
- MBA in International Business
- MBA in Information Technology
- MBA in Healthcare Management
- MBA In General Management
- MBA in Agriculture
- MBA in Supply Chain Management
- MBA in Entrepreneurship
- MBA in Project Management
- Management Program
- Consumer Behaviour
- Supply Chain Management
- Financial Analytics
- Introduction to Fintech
- Introduction to HR Analytics
- Fundamentals of Communication
- Art of Effective Communication
- Introduction to Research Methodology
- Mastering Sales Technique
- Business Communication
- Fundamentals of Journalism
- Economics Masterclass
- Free Courses
Constructor Overloading in Java: Explanation, Benefits & Examples
Updated on 14 May, 2024
92.84K+ views
• 9 min read
Table of Contents
Java, with its remarkable and dynamic features, has emerged as one of the most sought-after choices of developers for large-scale programming of web applications. It is a user-friendly language with a wide range of extraordinary features. Its compatibility with all the operating systems is the rich API has made it popular across the globe. The language offers robust community support and excellent documentation services. Java has a suite of solid development tools.
Check out our free courses to get an edge over the competition.
Constructors in Java
The constructors in Java are used to initialize the state of the object. Just like methods, constructors also contain a group of statements or instructions that are to be executed while an object is created.
Check out our Java Bootcamp
Why do we need a constructor in Java?
Let us consider a Box. If the box is assumed to be a class, it may have several variables such as width, length and height. When an object is to be created, the box class will have no defined values for its dimensions. At the time of creating new objects, the constructors assign values to the variables of the class. The assignment of values can either be done using default Java constructors or explicitly by the parameters passed by the programmer.
Check out our Advanced Certification in Blockchain
When is a Constructor Invoked?
A minimum of one constructor is invoked each time when an object is created using the new() keyword. This constructor provides initial values to the class’s data members. In general, a constructor is called when a new object or instance is created.
In-Demand Software Development Skills
upGrad’s Exclusive Software and Tech Webinar for you –
SAAS Business – What is So Different?
Constructor Overloading in Java
The process of defining multiple constructors of the same class is referred to as Constructor overloading. However, each constructor should have a different signature or input parameters. In other words, constructor overloading in Java is a technique that enables a single class to have more than one constructor that varies by the list of arguments passed. Each overloaded constructor is used to perform different task in the class.
The Java compiler identifies the overloaded constructors on the basis of their parameter lists, parameter types and the number of input parameters. Hence, the constructors that are overloaded should have different signatures. A constructor’s signature contains its name and parameter types. An ambiguity issue arises when two of the class constructors have an identical signature.
The compiler fails to differentiate between the two and hence returns an error notification. When constructors with different signatures are overloaded, the compiler determines the constructor to be invoked based on the number of input parameters of the objects.
Our learners also read: Free java course!
Learn Java Tutorials
Use of Constructor Overloading
As construction overloading enables the creation of the object of a specific class in several ways, it is most commonly used in Java programs based on the requirement of the programmer. With the use of constructor overloading, objects can be initialized with different data types.
Consider that an object with three class instance variables is taken as an example where a particular value is to be assigned to the second instance variable and the other variables are to be assigned default values. This can be accomplished by the declaration of multiple constructors according to the different signatures in the constituent class.
Read: Java Career Components & Architecture Explained
Example Code for the Implementation of Constructor Overloading in Java
Let us consider a program in which an Employee class has three constructors. Based on the values passed, each of the three is invoked to initialize an object.
Use of this Reference in Java
All instance methods and constructors welcome an implicit parameter called ‘this’, which is used to refer to the current object. The current object is that object on which the method is invoked. We can use the ‘this’ reference to refer to the current object within any constructor or method. The ‘this’ reference can be used, like any other object references, to access instance methods, constructors and variables, within the method or constructor’s body.
Few important scenarios where the ‘this’ reference is used are:
- When the names of the parameters are different from the instance variable names
- When a reference is to be passed to the current object and a parameter to another method
- When a constructor is to be invoked from another constructor.
The this() reference arguments must match the arguments of the target constructor in this case. The this() function must be the first statement within the constructor. In special cases such as complexity of initialization routine, this function can be used in the duplicate code elimination in multiple constructors.
Learn Software Development Courses online from the World’s top Universities. Earn Executive PG Programs, Advanced Certificate Programs or Masters Programs to fast-track your career.
Benefits of Constructor Overloading in Java
Constructor overloading in Java refers to defining multiple constructors for a class, each with a different set of parameters. This provides several advantages of constructor in java: –
Flexibility
Overload constructor in java allows you to create objects in different ways, providing flexibility to clients of your class. Different constructors can accept different combinations of parameters, making it easier for developers to instantiate objects based on their specific needs.
Initialization
With constructor overloading, you can provide different ways to initialize an object’s state. For instance, you might have constructors that initialize only a subset of the object’s fields or properties, allowing for partial initialization.
Code Reusability
By providing multiple constructors with different parameter lists, you can reuse code logic within your class. You can have one constructor that initializes default values and then has others that build upon it by adding more parameters and specific initialization steps.
Convenience
Constructor overloading enhances the convenience of using your class by allowing users to create objects with parameters that make sense to them without manually setting properties after object creation.
Readability
Well-named overloaded constructor in java make your code more readable and self-explanatory. Instead of creating an object and setting various properties, developers can create an object with the required values directly in the constructor call.
Avoidance of Setter Methods
In situations where you want to ensure that certain properties are set at object creation and remain immutable after that, constructor overloading is useful. This approach helps in creating more immutable and thread-safe objects.
Type Safety
Overloading constructor in java can help enforce type safety by providing constructors with specific parameter types. This reduces the chances of runtime errors related to incorrect parameter assignments.
Compile-Time Errors
Constructor overloading in Java can help catch errors at compile time rather than runtime. The compiler will generate an error if you try to create an object using a constructor with a parameter list that doesn’t match any defined constructor.
Reduced Boilerplate Code
When a class has multiple fields or properties, constructor overloading can save you from writing repetitive constructor initialization code by providing various constructors with different parameter combinations.
Check out all trending Java Tutorials in 2024
Essential points to consider in Constructor Overloading in Java
Certainly, here are some important points to keep in mind when dealing with constructor overloading in Java:
Number and Type of Parameters
Constructors can be overloaded based on the number and types of parameters they accept. This allows you to provide different ways to initialize objects.
Default Constructor
Java automatically provides a default constructor with no parameters if you don’t define any constructors in your class. However, once you define any constructor, the default constructor is no longer automatically provided.
Chaining Constructors
You can use this() keyword to call one constructor from another in the same class. This is useful for reusing code and avoiding redundancy in initialization logic.
Order of Constructors
A class should have different parameter lists if multiple constructors are defined in a class. The order of the constructors doesn’t matter as long as the parameter lists are unique. Java will choose the appropriate constructor based on the arguments provided during object creation.
Constructor Invocation
A constructor is always invoked when creating an object using the new keyword. The appropriate constructor is determined based on the arguments passed.
Superclass Constructors
When a subclass is created, the constructor of its superclass is also invoked. You can use the super() keyword to call a superclass constructor with specific arguments explicitly.
Constructor Overloading vs. Method Overloading
While constructor overloading involves defining multiple constructors in a class, method overloading involves defining multiple methods with the same name but different parameter lists. They serve different purposes but are both mechanisms for providing different interfaces to the same functionality.
Initialization Block
Apart from constructors, Java also supports instance initialization blocks (also called instance initializers), which are executed before constructors and are a way to provide common initialization logic for multiple constructors.
Compile-Time Resolution
The Java compiler chooses the appropriate constructor based on the arguments provided during object creation. If no matching constructor is found, a compilation error occurs.
Check out all trending Java Tutorials in 2024.
Difference between constructor overloading and constructor overriding
Constructor overloading occurs when a class has multiple constructors with the same name but different parameters. It allows the creation of objects in different ways depending on the provided arguments. On the other hand, constructor overriding is not possible in most object-oriented programming languages because constructors are not inherited. However, a subclass can define its own constructors, and each can call a constructor of the superclass, often referred to as “constructor chaining,” but this is not overriding.
What is constructor overriding in Java?
In Java, constructor overriding is not possible because constructors are not inherited by subclasses and therefore cannot be overridden. However, a concept often mistaken for constructor overriding is when a subclass constructor calls a constructor of its superclass using the super() keyword. This practice, known as constructor chaining, allows a subclass to extend the initialization behavior of its superclass, but it does not constitute overriding as seen with methods.
What is the difference between constructor overloading and function overloading in Java?
constructor overloading and function (method) overloading both involve defining multiple code entities with the same name but different parameter lists. Constructor overloading refers specifically to having multiple constructors in a class that have different parameters, enabling the creation of objects in different ways. Function overloading refers to defining multiple methods within the same class that have the same name but differ in the type, number, or both, of their parameters. While constructor overloading helps in creating objects with various initial states, function overloading provides flexibility in performing different operations based on different inputs.
Which constructor cannot be overloaded?
In Java, the default constructor, which is the no-argument constructor automatically provided by the compiler if no other constructors are defined, can indeed be overloaded by defining additional constructors with different parameters. However, once you define any constructor explicitly (whether it’s a no-argument constructor or any other), the compiler does not automatically provide the default constructor. Thus, technically, any constructor can be overloaded if more than one constructor is explicitly defined by the programmer with different parameter lists.
Summary
- Constructor overloading in Java refers to the use of more than one constructor in an instance class. However, each overloaded constructor must have different signatures.
- For the compilation to be successful, each constructor must contain a different list of arguments.
- The list of parameters includes sequence and the types of input arguments.
- Two constructors in a class with the same list of parameters is not feasible in Java.
If you’re interested to learn more about full stack software development , check out upGrad & IIIT-B’s Executive PG Programme in Software Development – Specialisation in Full Stack Development which is designed for working professionals and offers 500+ hours of rigorous training, 9+ projects and assignments, IIIT-B Alumni status, practical hands-on capstone projects & job assistance with top firms.
Frequently Asked Questions (FAQs)
1. What are objects in Java?
A Java object is a member of a Java class, often also known as an instance. Fields known as variables hold an object's state, whereas methods, sometimes known as functions, exhibit the object's action. The things that we see in the actual world are remarkably similar to the ones that we see in Java. They are distinguished by three characteristics: identity, condition, and conduct. The identification of an object is a feature that is used to distinguish it from others. The states of a Java object are kept in fields that indicate the entity's specific features. Methods that control the object's internal state disclose the object's behavior.
2. What are the advantages of using Java?
Java is much easier to write, compose, collect, examine, and learn than other programming languages. Because Java is a less complex composition than C++, it makes use of planned memory allocation and garbage collection. It is object-oriented, allowing you to create standard projects and code that can be reused. Its code is stage-independent and may run on any system without the need for any further programming. Java is a distributed language since it provides a tool for distributing information and projects among several PCs, which improves the framework's presentation and competency. RMI (Remote Method Invocation) is a Java feature that helps with distributed handling. Java has a good security administrator that defines how classes are entered.
3. What is overloading in programming languages?
Overloading is the capability to specify several methods of a class with different input and output parameters using a single identifier. When two or more methods do the same task but with slightly different arguments, they are said to be overloaded. Overloading is a technique for avoiding repetitive code in which the same method name is used many times but with different arguments each time. Runtime errors are avoided because the actual method that is called at runtime is addressed at compile time. The process of overloading helps in simplifying the code, reducing complexity, and improving runtime performance
RELATED PROGRAMS