问题描述
- 类的使用问题,请教!
- Using System;
namespace accessTest
{
class testAccess()
{
private int m=10;
public int n=20;
}
class Class1
{
private void Page_Load(object senderSystem.EventArgs e)
{
testAccess ta=new testAccess();
//ta.m=12;此代码是错误的,不能访问变量M,因为它为私有变量
ta.n=23;
}
}
}这是书上的例子,在讲类的封装性的。我以前学过VB。
问题1:对于类、类的方法不知道这样理解对吗?即:类是一个子程序,而类中定义的方法就是完成一个小功能的函数。
问题2:在一个类中定义的私有字段(变量),在另一个类中不能调用?那在类外面声明的私有变量,在类内部是否可以调用?
问题3:在一个类中定义的PUBLIC字段,是否在其它类或者类外直接调用?
问题4:类的方法中参数传递我的理解是否正确?
ref传递:在方法内部更改传递变量值时,传递变量会带回最新的值
out传递:调用完方法后,调用变量的值无用,只返回RETURN的值?书上讲该方法可以传递多个值回来,不懂是怎么传递回来的。
按值传递:调用方法时给的变量是什么值,返回还是什么值。只起到调用方法,给方法内赋值来实现某一具体功能,不负责值的回传。问题5:为什么我提问过的问题在我下次登录后个人页面的“技术问答”里“我提出的、我回答的”都是0啊?怎么才能找到我原来提问的问题呢?现在我都是每个提问收藏一次。
解决方案
类是一个子程序,而类中定义的方法就是完成一个小功能的函数。
如果按照VB来理解,类相当于窗体或者类模块,而函数才是子程序。
在一个类中定义的私有字段(变量),在另一个类中不能调用?那在类外面声明的私有变量,在类内部是否可以调用?
C#不允许你在类的外面定义函数或者变量
在一个类中定义的PUBLIC字段,是否在其它类或者类外直接调用?
必须通过类的实例,也就是对象才能访问。如果是静态变量,则通过类名访问
类的方法中参数传递我的理解是否正确?
ref传递:说明这个参数的修改将反应到实参上
out传递:和ref类似,但是它用于传出参数,所以不必调用者来初始化
按值传递:形参的改变不反映到实参上
顺便说下,返回多个值除了用out ref还可以返回一个结构体或者数组,那么结构体的每一项相当于一个值。
解决方案二:
你的概念很差,建议找一本书仔细学下,另外OOPL和非OOPL在概念上有很大的不同。如同不能把汽车理解为跑得很快的马,那样的理解指导你的实践会出问题的。
解决方案三:
我不是成心要回答废话,但是我必须问一下,你问的是java问题么,看楼上回答的是C#答案??!!
解决方案四:
谢谢: 苏小喵
的确是基础很差,10几年前在学校学过VB,后来就没再用过了。我也是闲着无聊,把前几年买的ASP.NET书翻出来再看看,其实当时就没看懂。现在看还是很多都不清楚,唉!基础太差啊!