Метод set нужен для того что бы присвоить закрытым (private) переменным в классе какое-либо значение. Т.к поле private доступно только для методов этого класса. А конструктор в зависимости от условия присваивает им какое-либо дефолтное значение . Разница в том что конструктор запускается автоматически при создании объекта. Приведу пример (с++)
class Fraction { private: int N; int deN; public: Fraction(); // прототип конструктора void setFraction(int, int); // прототип сет-метода }; void Fraction::setFraction(int num, int denum) // сам сет-метод { N = num; deN = denum; } Fraction::Fraction() // конструктор { int N = NULL; int deN= NULL; }
Var mas:array[1..1000, 1..1000] of integer; N,i,j,sum:integer;
Begin Writeln('Введите размер матрицы N*N'); Write('N = ');readln(N); if (N>1000) or (N<1) then Writeln('Ошибка, указанные значения выходят за пределы матрицы') else Begin Writeln('Введите элементы матрицы'); sum:=0; for i:=1 to N do for j:=1 to N do Begin readln(mas[i,j]); if (mas[i,j] mod 2 <> 0) then sum:=sum+mas[i,j]; end;
Writeln(); Writeln('Исходная матрица'); for i:=1 to N do Begin for j:=1 to N do Begin Write(mas[i,j], ' '); end; Writeln(); end;
Writeln(); Writeln('Сумма нечетных элементов = ',sum);
доступно только для методов этого класса.
А конструктор в зависимости от условия присваивает им какое-либо дефолтное значение . Разница в том что конструктор запускается автоматически при создании объекта.
Приведу пример (с++)
class Fraction
{
private:
int N; int deN;
public:
Fraction(); // прототип конструктора
void setFraction(int, int); // прототип сет-метода
};
void Fraction::setFraction(int num, int denum) // сам сет-метод
{
N = num; deN = denum;
}
Fraction::Fraction() // конструктор
{
int N = NULL;
int deN= NULL;
}
uses crt;
Var mas:array[1..1000, 1..1000] of integer;
N,i,j,sum:integer;
Begin
Writeln('Введите размер матрицы N*N');
Write('N = ');readln(N);
if (N>1000) or (N<1) then
Writeln('Ошибка, указанные значения выходят за пределы матрицы') else
Begin
Writeln('Введите элементы матрицы');
sum:=0;
for i:=1 to N do
for j:=1 to N do
Begin
readln(mas[i,j]);
if (mas[i,j] mod 2 <> 0)
then sum:=sum+mas[i,j];
end;
Writeln();
Writeln('Исходная матрица');
for i:=1 to N do
Begin
for j:=1 to N do
Begin
Write(mas[i,j], ' ');
end;
Writeln();
end;
Writeln();
Writeln('Сумма нечетных элементов = ',sum);
end;
readln;
end.