[黑马程序员]_面向对象的概念、对象引用及属性
来源:互联网 发布:美工找素材去什么网站 编辑:程序博客网 时间:2024/06/14 10:40
面向对象的三个特性:封装、继承、多态。
类,对象。 例如:"人"是类,"张三"是"人"这个类的对象。类是抽象的,对象时具体的。对象可以叫
做类的实例。字段(和类相关的变量),字段就是类的状态。人这个类中有姓名、年龄、身高等字段。
类不占内存,对象才占内存。
方法,就是类能够执行的动作。比如问好、吃饭等。
类的继承,类之间可以有继承关系,比如"电脑"类可以从电器类继承,这样的好处是"电脑"类只需要
字段、方法、属性都可以叫做类的成员,他们都需要定义访问级别。访问级别的用处在于控制在哪些
地方可以被访问,这样达到面向对象中"封装"的目的。
public :在任何地方被访问
internal:本项目中被访问
private:本类中被访问
preotected:本类和子类中访问
在类中定义变量和方法时,没写访问修饰符,那么默认的访问修饰符为private。
在类级别,不写访问修饰符默认为internal。
属性
class Person
{
private int age;
public int Age //Age没有保存数据,都保存到age中
{
get{ return this.age;} //取值
set{ this.age=value; } //赋值,value代表用户赋值过来的值
//可简写为:get;set; //编译器自动帮我们生成私有字段和set,get代码块。
}
}
public class MainClass
{
public static void Main()
{
Person p=new Person();
p.Age=23;
Console.WriteLine("年龄{0}",p.Age);
Console.ReaKey();
}
}
对象的引用
int,datetime,bool,char等类型都是值类型(ValueType),赋值的时候是传递拷贝。
普通的对象则是引用类型,赋值的时候是传递引用。传递给函数也是引用传递的。
例:
int i=10;
int j=i;
i++;
Console.WriteLine(j); //输出结果为:10
Person p=new Person(10);
Person p1=p; //指向同一个对象
p.Age++;
Console.WriteLine(p1.Age); //输出结果为:11
类,对象。 例如:"人"是类,"张三"是"人"这个类的对象。类是抽象的,对象时具体的。对象可以叫
做类的实例。字段(和类相关的变量),字段就是类的状态。人这个类中有姓名、年龄、身高等字段。
类不占内存,对象才占内存。
方法,就是类能够执行的动作。比如问好、吃饭等。
类的继承,类之间可以有继承关系,比如"电脑"类可以从电器类继承,这样的好处是"电脑"类只需要
定义自己特有的字段、方法就可以,也就是只要定义内存大小、CPU型号这些字段或弹出光驱等方法就
可以。
父类、基类(基业,祖宗十八代传下来的)。电脑类是电器类的子类。
字段、方法、属性都可以叫做类的成员,他们都需要定义访问级别。访问级别的用处在于控制在哪些
地方可以被访问,这样达到面向对象中"封装"的目的。
public :在任何地方被访问
internal:本项目中被访问
private:本类中被访问
preotected:本类和子类中访问
在类中定义变量和方法时,没写访问修饰符,那么默认的访问修饰符为private。
在类级别,不写访问修饰符默认为internal。
属性
class Person
{
private int age;
public int Age //Age没有保存数据,都保存到age中
{
get{ return this.age;} //取值
set{ this.age=value; } //赋值,value代表用户赋值过来的值
//可简写为:get;set; //编译器自动帮我们生成私有字段和set,get代码块。
}
}
public class MainClass
{
public static void Main()
{
Person p=new Person();
p.Age=23;
Console.WriteLine("年龄{0}",p.Age);
Console.ReaKey();
}
}
对象的引用
int,datetime,bool,char等类型都是值类型(ValueType),赋值的时候是传递拷贝。
普通的对象则是引用类型,赋值的时候是传递引用。传递给函数也是引用传递的。
例:
int i=10;
int j=i;
i++;
Console.WriteLine(j); //输出结果为:10
Person p=new Person(10);
Person p1=p; //指向同一个对象
p.Age++;
Console.WriteLine(p1.Age); //输出结果为:11
- [黑马程序员]_面向对象的概念、对象引用及属性
- [黑马程序员]_面向对象的概念、对象引用及属性
- 黑马程序员-java面向对象的概念及封装总结
- 黑马程序员 面向对象的概念
- 黑马程序员 面向对象的概念
- 黑马程序员—面向对象的概念
- 黑马程序员——java面向对象的概念,Java类、引用变量与堆对象
- 黑马程序员_面向对象的应用
- 黑马程序员_面向对象的思想
- 黑马程序员_面向对象的特性
- 黑马程序员_面向对象的程序设计
- 黑马程序员_面向对象的理解
- 黑马程序员_面向对象的特征
- 黑马程序员---面向对象概念
- 黑马程序员_面向对象
- 黑马程序员_面向对象
- 黑马程序员_面向对象
- 黑马程序员_面向对象
- 【Android UI设计与开发】第07期:底部菜单栏(二)Fragment的详细介绍和使用方法
- UltraEdit的语法高亮显示配置
- 尚学堂java SE学习笔记(未完待续)
- 《Filter type 的对应GUID》 + 《COM中 GUID和UUID、CLSID、IID》
- [黑马程序员]_构造函数和继承
- [黑马程序员]_面向对象的概念、对象引用及属性
- STL中map用法详解
- [黑马程序员]_冒泡排序算法
- C语言 条件编译详解
- [黑马程序员]_数组定义、初始化及使用
- 数组可以一次声明多个同类型的变量,这些变量在内存中连续存储的.
- 黑马程序员---高新代理
- C语言--字符串和数字的相互转换
- [黑马程序员]_自加自减及复合运算符及关系运算符和逻辑运算符小结