self ,super , static关键字

1.self关键字  自己的   代表当前对象和当前类的。

a.如果self是在对象方法中使用的话,self就代表当前的对象。

self其实是一个指针,是当前对象的地址。

有什么用?

对象方法中,是可以声明一个和属性名字相同的局部变量的。

在对象方法里,如果你直接使用这个名字相同的这个变量,得到的值是这个局部变量的值。

如果我就是要拿到属性的值呢?就是用self关键字去执向。

如果在对象方法中,要去调用当前对象的其他的对象方法,就使用self去调用。

b. self也是可以用在类方法中的,self就代表当前类。

如何得到类的地址(类加载到代码段中的地址):

1.)调用这个类的对象方法class,返回这个类的地址

2.)调用这个类的类方法class,返回的也是这个类的地址

3.)类方法中的self,就是指向这个类。

4.)类都有一个isa指针

如果在类方法中,去调用另外的类方法.

我们当然可以使用类名去调用另外的类方法,但是我们不建议这么使用。

我们一般的使用self去调用另外的类方法,因为在类方法中self就代表这个类。

//------------------------------------------------------super----------------------------------------------------------//

1.super 关键字  只能运用在类方法和对象方法中。

a.当super运用在对象方法中,可以去调用子类对象中从父类继承过来的对象方法。

父类中的对象方法继承给子类了,那么这个方法就是子类的了,你当然可以用self去调用。

但是这种情况,我们建议使用super关键字去调用,代码的可读性更高,让人一看就值得你这个方法,是从父类继承过来的。

b. 当super运用在类方法中,可以去调用子类对象中从父类继承过来的类方法。

类方法是可以继承的。

父类中的类方法,可以继承给子类,  子类就拥有了这个类方法,子类中的其他类方法中当然可以用self去调用这个类方法。

但是这种情况,我们建议使用super关键字去调用父类继承过来的类方法,代码可读性更高。让人一看就知道这个类方法是从父类继承过来的。

c.superhi只能调用方法,不能调用属性。

//------------------------------------------------------static关键字----------------------------------------------------------//

1.static关键字

a.c语言中static关键字的用法

修饰局部变量:将局部变量变成了静态变量,存放在常量区中的。

修饰全局变量:这个被static修饰的全局变量只能在当前模块中访问,

修改函数:这个被static修饰的函数只能在当前模块中被调用。

b.static也是可以在oc中使用的。

在oc中,static关键字是不能修饰 属性 和方法的。

在oc中,可以用static修饰对象方法中的局部变量。 对象方法中的局部变量如果被static修饰了,那么就变成了一个静态变量,就会存在常量区中,程序中就只有一个这个静态变量。使用的时候也是使用这一个。

c.什么时候我们需要把一个对象中的方法被static修饰呢?

当对象方法中的某一个变量,是共有的,比如学生的id,每次创建一个学生,id是要自动增长的。id就可以设置成被static修饰了的。

时间: 2024-10-09 20:38:15

self ,super , static关键字的相关文章

this,final super,static关键字

this关键字 this调用构造方法: 在之前学习方法之间调用时,可以通过方法名进行调用.可是针对构造方法,无法通过构造方法名来相互调用. 构造方法之间的调用,可以通过this关键字来完成. |------构造方法调用格式: this(参数列表); |------构造方法的调用: package com.oracle.demo01; public class student { private String name; private int age; public student(){ //t

java中static,super,final关键字辨析

1:static关键字 利:1)对对象的共享数据提供单独的空间存储. 2)修饰的方法可以直接被类名调用 弊:1)生命周期长. 2)访问出现限制(只能访问静态) 它可以有静态方法,静态类,静态变量 2:super关键字 1)使用super关键字调用父类的成员变量和成员方法. 格式1:super.成员变量 格式2:super.成员方法([参数1,参数2...]) 2)使用super关键字调用父类的构造方法 格式1:super([参数1,参数2...]) 总结:this代表当前对象(可以输出或地址).

部分关键字--this/extends/super/static/final/abstract/访问权限总结

1.this关键字的作用 1)调用本类中的属性; 2)调用本类中的构造方法;且只能放首行,且必须留一个构造方法作为出口,即不能递归调用 3)表示当前对象; 2.匿名对象 直接new出来的对象,不创建变量名,且只能使用一次,通常作为方法的参数及返回值使用 3.继承 关键字:extends 通过继承,子类可以直接访问父类中非私有的属性及方法 只允许单继承,但是可以多层继承 子类对象的实例化过程是先调用父类的构造器,再调用子类的构造器; 子类程序调用方法,先调用子类方法,如果子类没有再调用父类中的方法

Java_类与对象03_封装和private、this、super、static关键字

A    封装:类中的成员变量为private(私有),为私有的成员变量提供公有的get()或set(). 封装的好处: i.      隐藏实现细节,提供共有的访问方式 ii.     提高了代码的复用性 iii.    提高安全性 封装的原则(思想): i.      将不需要对外提供的内容隐藏起来 ii.     把属性隐藏,提供公共方法对其访问 封装的体现:private是封装的一种体现. B    private: i.      是一个权限修饰符 ii.     可以修饰成员(成员变

this/super/static/final/匿名对象/继承/抽象类/访问权限修饰符

1.this关键字的作用     1)调用本类中的属性;     2)调用本类中的构造方法;且只能放首行,且必须留一个构造方法作为出口,即不能递归调用     3)表示当前对象; 2.匿名对象     直接new出来的对象,不创建变量名,且只能使用一次,通常作为方法的参数及返回值使用 3.继承     继承是面向对象的三大特征之一,通过关键字:extends实现,被继承的类称为父类(也称作基类/超类),实现继承的类称为子类(也称作派生类).     特点:     (1)通过继承,子类可以直接访

5.JAVA基础复习——JAVA中的static关键字作用与用法

static关键字: 特点: 1.static是一个修饰符,用于修饰成员.(成员变量,成员函数)static修饰的成员变量 称之为静态变量或类变量. 2.static修饰的成员被所有的对象共享. 3.static优先于对象存在,因为static的成员随着类的加载就已经存在. 4.static修饰的成员多了一种调用方式,可以直接被类名所调用,(类名.静态成员). 5.static修饰的数据是共享数据,对象中的存储的是特有的数据. 1 private static int age;//用static

四.OC基础--1.文档安装和方法重载,2.self和super&static,3.继承和派生,4.实例变量修饰符 ,5.私有变量&私有方法,6.description方法

四.OC基础--1.文档安装和方法重载, 1. 在线安装 xcode-> 系统偏好设置->DownLoads->Doucument->下载 2. 离线安装 百度xcode文档 3. 方法重载: 是指在一个类中定义多个同名的方法 在OC中没有重载 2.self和super&static, self和super: 1. self理解: 谁调用当前方法, self就代表谁. 比如: 在对象方法中,self代表的是对象, 因为只有对象才可以调用对象方法 在类方法中, self代表的

4.6-全栈Java笔记:THIS关键字和STATIC关键字

this关键字 对象创建的过程和this的本质 构造方法是创建java对象的重要途径,通过new关键字调用构造器时,构造器也确实返回了该类的对象,但这个对象并不是完全由构造器负责创建的.创建一个对象分为如下四步: 1. 分配对象空间,并将对象成员变量初始化为0或空 2. 执行属性值的显示初始化 3. 执行构造方法 4. 返回对象的地址给相关的变量 this的本质就是"创建好的对象的地址"!  由于在构造方法调用前,对象已经创建.因此,在构造方法中也可以使用this代表"当前对

Java中static关键字的作用和用法详细介绍

static表示“全局”或者“静态”的意思,用来修饰成员变量和成员方法,也可以形成静态static代码块,但是Java语言中没有全局变量的概念. 被static修饰的成员变量和成员方法独立于该类的任何对象.也就是说,它不依赖类特定的实例,被类的所有实例共享. 只要这个类被加载,Java虚拟机就能根据类名在运行时数据区的方法区内定找到他们.因此,static对象可以在它的任何对象创建之前访问,无需引用任何对象. 用public修饰的static成员变量和成员方法本质是全局变量和全局方法,当声明它类