Назад Вперед Зміст

Поля класу

Поля містять дані класу. Значення полів різні для різних об'єктів цього класу.

Опис полів класу

Додамо до класу кілька полів. Наш клас Triangle, поля будуть визначати довжини сторін трикутника. Тип цих змінних буде числовим.

Змінні, описані у класі, називаються полями класу.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Triangle
{
    public class Triangle
    {
        // Private fields with proper naming
        private double sideA;
        private double sideB;
        private double sideC;

        // Constructor with validation
        public Triangle(double a, double b, double c)
        {
            if (!IsValidTriangle(a, b, c))
                throw new ArgumentException("Invalid triangle sides");

            sideA = a;
            sideB = b;
            sideC = c;
        }

        // Property accessors
        public double SideA => sideA;
        public double SideB => sideB;
        public double SideC => sideC;

        // Method to check if sides can form a valid triangle
        private bool IsValidTriangle(double a, double b, double c)
        {
            return a > 0 && b > 0 && c > 0 &&
                   a + b > c &&
                   a + c > b &&
                   b + c > a;
        }

        // Calculate perimeter
        public double GetPerimeter()
        {
            return sideA + sideB + sideC;
        }

        // Calculate area using Heron's formula
        public double GetArea()
        {
            double p = GetPerimeter() / 2;
            return Math.Sqrt(p * (p - sideA) * (p - sideB) * (p - sideC));
        }

        // String representation
        public override string ToString()
        {
            return $"Triangle with sides: A={sideA}, B={sideB}, C={sideC}";
        }
    }
}

Модифікатори доступу до полів класу

Модифікатор доступу пишеться перед типом і визначає доступ до полів з інших класів.

При описі ми вказали модифікатор доступу private (закритий). Можна було б його не писати, оскільки за умовчанням усі поля мають доступ private. Змінні, описані з таким модифікатором, доступні тільки всередині свого класу.

Якщо при описі ми вкажемо модифікатор доступу public, до цих полів можна буде звертатися з будь-якого класу.

Існує ще модифікатор доступу protected, коли тільки об'єкти класів-спадкоємців можуть звертатися до поля.

Модифікатор internal: компоненти класу або структури доступні з будь-якого місця коду в тій самій програмі, однак він недоступний для інших програм.

Як правило, значення полям надаються при створенні об'єкта, в конструкторі з параметрами.

Назад Вперед Зміст