学习笔记之08-self关键字

一、Java中的this只能用在动态方法中,不能用在静态方法中

1.在动态方法中使用this关键字

1 public class Student {
2     private int age;
3     public void setAge(int age) {
4         this.age = age;
5     }
6 }

在第4行使用了this,这里的this代表着调用setAge方法的某个Student对象

2.如果在静态方法中使用this关键字,直接报错

二、OC中的self既可以用在动态方法中,也可以用在静态方法中

1.self在动态方法中

 1 @implementation Student
 2
 3 - (void)test2 {
 4
 5 }
 6
 7 - (void)test3 {
 8     [self test2];
 9 }
10
11 @end

* 在第3行、第8行定义了2个动态方法

* 在第8行使用了self关键字,这里的self代表着调用test3方法的某个Student对象

* 第8行代码的作用是调用Student对象的动态方法test2

2.self在静态方法中

 1 @implementation Student
 2
 3 + (void)test2 {
 4
 5 }
 6
 7 + (void)test3 {
 8     [Student test2];
 9
10     [self test2];
11 }
12
13 @end

* 在第3、第7行定义了2个静态方法,看清楚方法前面的+号

* 再看第10行,这里用到了self。看清楚了,是在静态方法test3中用到了self关键字

* 一开始就说了,self代表着当前方法的调用者。当前方法是test3,那test3的调用者是谁呢?肯定是Student这个类,因为test3是个静态方法。因此这里的self代表着Student这个类

* 因此,第8行、第10行的作用是一样,都是调用了静态方法test2

3.self总结

1> 在动态方法中,self代表着"对象"

2> 在静态方法中,self代表着"类"

3> 万变不离其宗,记住一句话就行了:self代表着当前方法的调用者

时间: 2024-10-12 13:01:44

学习笔记之08-self关键字的相关文章

C++学习笔记7,const关键字的使用(一)。

在C++里面,const关键字的用处很多,使用好const关键字对程序的健壮性大有好处. 首先来看看const一般都用在什么地方. 1.用于定义常量. const用的最多的就是用来定义常量了. const常量有数据类型,而宏常量没有数据类型.编译器可以对前者进行类型安全检查,而对后者只进行字符替换,没有类型安全检查,并且在字符替换时可能会产生意料不到的错误. 一个最简单的例子: #include <iostream> using namespace std; int main() { cons

[javase学习笔记]-7.12 static关键字的使用场景

这一节我们来看一下在我们开发的过程中,在什么时候我们要用到static关键字进行静态修饰. 我们这里所说的静态,无非就是两种,一种是静态变量,一种是静态函数,我们分这两种情况进行说明static关键字的使用场合. 一.静态变量 我们在7.8节中对static关键字特点和7.9节中成员变量与静态变量区别进行学习的时候就已经很明确的指出了静态变量是共享数据,而对象中封装的特有数据. 因此我们可以这样解释:当分析对象中所具备成员变量的值是相同的,且不需要对象做修改,这时这个成员变量就可以被static

C语言学习笔记--enum和sizeof关键字

1.enum关键字 C语言中enum关键字用来定义枚举类型 (1)enum 是 C 语言中的一种自定义类型(2)enum 值是可以根据需要自定义的的整型值(3)第一个定义的 enum 值默认为 0 (4)默认情况下的 enum 值是在前一个定义值的基础上加 1 (5)enum 类型的变量只能取定义时的离散值 enum Color { GREEN, //默认 GREEN==0; RED= 2, //自定义 RED==2; BLUE //默认情况,是在前一个的基础上加 1,即 BLUE==3 };

【JAVAWEB学习笔记】08

今天晨读单词: CRUD:增删改查(create/read/update/delete)create:新增项目read:查询update:修改delete:删除 desc 表名:查看表结构drop:删除表primary key :主键 modify:修改(修改表中列的类型和长度) decimal:泛型型blob:字节类型timestamp:时间戳 truncate:摧毁(彻底删除表格)transaction:事物,业务rollback:反转,回滚 connectivity:连通,连接statem

Java学习笔记四:static关键字

1.static表示什么? static表示"全局"或者"静态"的意思.在Java中没有全局变量的概念,static 可以简单的理解为全局的,独立的一个功能. (1)当我们在使用 static 修饰成员变量或者成员方法的时候,通常会在Java内存中为这些变量或者方法指定了一块独立的区域(这块区域可能在栈中,也有可能在堆中). (2)如果静态的变量或方法在不出其作用域的情况下,其 引用句柄是不会发生改变的. (3)这块区域是内存共享的,它的引用都指向同一个位置,就是说

[javase学习笔记]-7.6 this关键字之原理

这一节我们来讲一个关键字,就是this关键字. 我们还是通过例子来看吧: class Person { private String name; private int age; Person(String n,int a) { name = n; age = a; } public void speak() { System.out.println(name+":"+age); } } class ThisTest { public static void main(String[]

C语言学习笔记--const 和 volatile关键字

1.const关键字 (1)const 修饰的变量是只读的,它不是真正的常量,本质还是变量,只是告诉编译器不能出现在赋值号左边! (2)const 修饰的局部变量在栈上分配空间 (3)const 修饰的全局变量在全局数据区分配空间(vc.gcc 会将其放入常量区,bcc 放入全局数据区) (4) const 只在编译期有用,在运行期无用 #include <stdio.h> const int g_cc = 2;//bcc 下存储在全局数据区,可修改. //vc.gcc 将其存储在常量区,不可

【Python学习笔记之一】Python关键字及其总结

前言 最近在学习Java Sockst的时候遇到了一些麻烦事,我觉得我很有必要重新研究学习Python这种脚本语言,参考大神的经验,淘到了一本学习Python的好书<"笨方法"学Python>,我决定花很长一段时间重新学习一下Python,把自己的一些总结经验以及积累的一些东西放到博客上,大家可以一 http://pic.cnhubei.com/space.php?uid=1132&do=album&id=804519http://pic.cnhubei.c

Java学习笔记二——标识符和关键字

标识符 定义 标识符的定义:对各种变量.方法和类等要素命名时使用的字符序列成为标识符. 简单地说,就是凡是自己可以起名字的地方都叫标识符,都要遵守标识符的规则. 命名规则 标识符只能由字母.下划线"_".美元符号"$"或数字组成 标识符只能以字母.下划线或美元符开头 标识符不能是Java关键字和保留字 标识符大小写敏感,长度无限制 约定俗成 为了能使Java代码更好地维护和美观,通常写Java代码是都会遵循一些约定俗成的规矩,如下: 标识符要起的见名知意,可以由多个

《Effective C++ 》学习笔记——条款08

***************************************转载请注明出处:http://blog.csdn.net/lttree******************************************** 二.Constructors,Destructors and Assignment Operators Rule 08:Prevent exceptions from leaving destructors 规则08:别让异常逃离析构函数 1.再来谈一个C++讨