类
类是具有相同或相似特征(属性)和行为(方法)的对象集合。
定义如下:
namespace 面向对象{
//定义类:访问修饰符 + class + 类名
//如果未加访问修饰符,则默认为internal
//学生类
calss Student{
}
//教师类
public class Teacher{
}
}
对象
对象是用来描述客观事物的一个实体,是构成系统的一个基本单位。
万物皆对象
定义如下:
namespace 对象{
class Programs{
static void Main(string[] args){
//通过上面的学生类来创建一个学生对象
Student stu = new Student();
//通过上面的教师类来创建一个教师对象
Teacher tea = new Teacher();
}
}
}
对象和类的关系
对象是类的实例化,类是对象的抽象,如同模具跟铸件的关系。
字段和方法
字段:
是直接在类或结构中声明的任何类型的变量
访问修饰符+数据类型+_字段名;
方法:
把一些相关的语句组织在一起,用来执行一个任务的语句块
访问修饰符+返回值类型+方法名
namespace 面向对象{
//学生类
calss Student{
//类中包含属性和方法
//创建学生类的字段
//字段可以在Student类中直接调用
public string _name; //姓名
public int _age; //年龄
public char _sex; //性别
public int _strId; //学号
public float _score; //成绩
//创建学生类的方法
public void Study()
{
Console.WriteLine(_name + "爱学习");
}
public void Rest()
{
Console.WriteLine(_name + "爱休息");
}
public void Shopping()
{
Console.WriteLine(_name + "爱购物");
}
public void Play()
{
Console.WriteLine(_name + "爱玩");
}
public void Sleep()
{
Console.WriteLine(_name + "爱睡觉");
}
}
}
调用字段和方法
namespace 面向对象{
class Programs{
Student stu = new Student();
//通过创建的对象来调用类里面的方法和属性
stu._name = "小明";
stu._age = 18;
stu._sex = "男";
stu._stuId = 156666666;
stu._score = 100;
stu.Study();
stu.Rest();
stu.Shopping();
stu.Sleep();
stu.Play();
}
}
构造方法
构造方法是一种特殊的方法,它是一个与类同名且没有返回值类型的方法。
对象的创建就是通过构造方法来完成,其功能主要是完成对象的初始化。
当类实例化一个对象时会自动调用构造方法。构造方法和其他方法一样也可以重载。
运用构造函数来求解长方形的面积和周长:
namespace 面向对象
{
//长方形类,用来计算长方形的面积和周长
class Rectangle
{
//构造方法的重载
//0 个参数的构造函数
public Rectangle()
{
_chang = 1;
_kuan = 1;
Console.WriteLine("长为:{0},宽为:{1}的长方形", _chang, _kuan);
}
//一个参数的构造函数
public Rectangle(int a)
{
//长和宽都为传入的参数
_chang = a;
_kuan = a;
Console.WriteLine("长为:{0},宽为:{1}的长方形", _chang, _kuan);
}
//两个参数的构造函数
public Rectangle(int chang,int kuan)
{
//长和宽分别为传入的两个参数
_chang = chang;
_kuan = kuan;
Console.WriteLine("长为:{0},宽为:{1}的长方形", _chang, _kuan);
}
public int _chang; //记录长方形的长
public int _kuan; //记录长方形的宽
//计算面积的函数
public void Area()
{
int area = 0;
area = _chang * _kuan;
Console.WriteLine("面积为:" + area);
}
//计算周长的函数
public void Cir()
{
int cir = 0;
cir = 2 * (_chang + _kuan);
Console.WriteLine("周长为:{2}", _chang, _kuan, cir);
}
}
}
在main方法中调用并运行
namespace 面向对象
{
class Program
{
static void Main(string[] args)
{
Rectangle r1 = new Rectangle();
r1.Area();
r1.Cir();
Console.WriteLine();
Rectangle r2 = new Rectangle(3);
r2.Area();
r2.Cir();
Console.WriteLine();
Rectangle r3 = new Rectangle(4, 5);
r3.Area();
r3.Cir();
}
}
}
练习
1.定义一个计算器类,包括加、减、乘、除运算。
2.试编写Java代码实现一个计数器类Computer其中包括:
域value :用来保存计数器的当前值;
方法increment(): 计数器加一;
方法decrement() :计数器减一;
方法reset():计数器清零;
1.计算器类
namespace 面向对象
{
class Calculator
{
public Calculator(float one,float two)
{
_numOne = one;
_numTwo = two;
}
private float _numOne;
private float _numTwo;
public void Plus()
{
Console.WriteLine(_numOne+"+"+_numTwo+"="+(_numOne + _numTwo));
}
public void Minus()
{
Console.WriteLine(_numOne + "-" + _numTwo + "=" + (_numOne - _numTwo));
}
public void Multiplication()
{
Console.WriteLine(_numOne + "*" + _numTwo + "=" + (_numOne * _numTwo));
}
public void Divide()
{
Console.WriteLine(_numOne + "/" + _numTwo + "=" + (_numOne / _numTwo));
}
public void Mod()
{
Console.WriteLine(_numOne + "%" + _numTwo + "=" + (_numOne % _numTwo));
}
public void Result()
{
Plus();
Minus();
Multiplication();
Divide();
Mod();
}
}
}
2.计数器类
namespace 面向对象
{
class Computer
{
public Computer(int value,int count)
{
_value = value;
_count = count;
}
private int _value; //计数器的域
private int _count; //运行的次数
//计数器加一
public void Increment()
{
for (int i = 0; i < _count; i++)
{
++_value;
}
Console.WriteLine(_value);
}
//计数器减一
public void Decrement(){
for (int i = 0; i < _count; i++)
{
--_value;
}
Console.WriteLine(_value);
}
//计数器清零
public void Reset()
{
_value = 0;
Console.WriteLine(_value);
}
}
}
主函数
namespace 面向对象
{
class Program
{
static void Main(string[] args)
{
Calculator cal = new Calculator(4, 8);
cal.Result();
Computer com = new Computer(10,5);
com.Increment();
com.Reset();
}
}
}
运行结果: