面向对象(类,实例变量,方法定义,方法重载,构造方法,this,string类)

面向对象

类是由属性和方法组成

类是所有创建对象的模板

实例变量有默认值

实例变量至少在本类范围中有效

实例变量与局部变量冲突时,局部变量优先

类中方法定义类似于函数定义

修饰符 返回值类型 方法名(参数1,参数2) 异常{

方法体

方法重载

参数个数不同

参数类型不同

参数类型相同但是顺序不同

传入参数的不同自动选取相应方法:典型例子system.out.println(整形,字符串等);

构造方法

1.构造方法无返回值

2.不定义的情况下,有默认的空构造方法

3.在对象构造时,被自动调用一次,而且只会被调用一次

4.用来分配空间用来初始化变量

class student{

String name = “suns”;
        int age;
        public Student(){}

this

类的实例变量与局部变量冲突的时候,局部变量优先。如果发生局部变量冲突时可以通过this.属性调用实例变量

this在这里指的是当前对象   this.i即m1的属性i

public class Test2 {
  public static void main(String args[]){
	  MyClass m1 = new MyClass();
	  m1.print();
  }
}
class MyClass{
	int i = 10;
	public void print(){
		int i = 20;
		System.out.println(i);//20
		System.out.println(this.i);//10

	}

}

String

String s = “suns”;创建一个对象//再创建String s = “suns”;时并没有创建新的对象是同一个对象

String s = new String(“suns”); 创建了两个对象

前者对象放在jvm字符串池,下次定义同样字符串时候可以不用创建,直接使用,建议采用此方式

后者不放在串池

String类中的常用方法

boolean equals()

char  charAt(int pos)

int length()

String[] split();

boolean startWith(String s)

trim()

	public static void main(String[] args) {
	//	         split 分割  [1,2,3,4,5]   1,2,3,4,5
				String str="1,one2,one3,one4,one5";
				int[] arr=new int[5];
				String[] sarr=str.split(",one");

				for(int i=0;i<sarr.length;i++)
				System.out.print(sarr[i]+"\t");
			}
时间: 2024-12-28 06:49:29

面向对象(类,实例变量,方法定义,方法重载,构造方法,this,string类)的相关文章

第二讲、实例变量可见度、方法

一.实例变量可见度 可见度         特点 public          实例变量可以在类的外部和内部操作 protected    实例变量只能在该类和其子类内操作     默认 private        实例变量只能在该类内访问 内部:相应类的@implementation和@end之间 @interface Person : NSObject { @public NSString*_name; @protected NSString*_gender; int_age; //年龄

Obj-c2[实例变量可见度和方法]

////setter方法  设置器,专门给一个实例变量赋值的方法//- (void)setName:(NSString *)name;//- (void)setAge:(NSInteger)age;//- (void)setSex:(NSString *)sex;//- (void)setWeight:(CGFloat)weight;//- (void)setHeight:(CGFloat)height;//////getter方法 访问器,用来得到一个实例变量内容的方法//- (NSStrin

MR-为什么MR类的变量喜欢定义在方法外面?

写了一些MR后发现不管是别人写的还是官方给的,比如map方法,变量都是定义在方法外面. 因为之前都是照猫画虎的写的,所以自己也一直这么写,可是为什么呢? 我试了试定义在方法里面,程序照样跑,试了几个程序都是这样. 可能是自己之前对MR的运行过程了解的不是很详细,看父类Mapper和Reducer才知道,程序分发到一个节点后运行mapper类时初始一次,之后N次的map执行都是调用的map方法,所以这样写应该只是一种较优的写法而已. 就像某一个车间一个任务交给只初始一个人(map类)来做,N个加工

能否向编译后得到的类中增加实例变量?能否向运行时创建的类中添加实例变量?为什么

不能向编译后得到的类中增加实例变量!能向运行时创建的类中添加实例变量! 因为编译后的类已经注册在runtime中,类结构体中的objc_ivar_list 实例变量的链表和instance_size实例变量的内存大小已经确定,同时runtime 会调用class_setIvarLayout 或 class_setWeakIvarLayout来处理strong weak引用,所以不能向存在的类中添加实例变量. 运行时创建的类是可以添加实例变量,调用 class_addIvar 函数,但是得在调用 

Oc(实例变量可见度与方法)(InstanceVariableAndMethod)

main函数 // //  main.m //  2-3 LessionInstanceVariableAndMethod // //  Created by lanouhn on 15/2/3. //  Copyright (c) 2015年 lanouhn. All rights reserved. // #import <Foundation/Foundation.h> #import "Boy.h" #import "MobilePhone.h"

实例变量可见度、方法、setter、getter

oc中的消息机制:如果为类方法,消息接收者为类名 如果为实例方法,消息接收者为对象名 消息带参数给参数,不带就不给 消息有返回值,定义相同类型的变量接收,没有就不需要定义变量 //各实例变量的课件度 NSInteger _height; @public NSString *_name;//为什么不默认用@public 修饰实例变量,破坏了封装性,不安全: @protected NSString *_gender; @private NSInteger _age; //其所占字节数根据操作系统位数

OC总结第二讲:实例变量可见度和方法

实例变量有3种常用的可见度:@public  @protected  @private public(公有的) 实例变量可以在类的外部和内部操作 protected(受保护的,默认的) 实例变量只能在该类和其子类内操作 private(私有的) 实例对象只能在该类内访问 所谓的内部,指的是相应类的@implementation和@end之间 方法: 1.类方法:只能类使用 例如: +(id)alloc 注意:类方法中不能使用实例变量 2.实例方法: 只能对象使用, - (void)satHi 程

ruby中的类实例变量和实例的实例变量

ruby中有实例变量这个语法,有点类似java的对象的属性,但是ruby中类也有实力变量, class Person @name = 'hello' def initialize(name,age) @name = name @age = age end def self.talk #类方法,类方法可以访问类的实力变量 puts "#{@name}" end def talk #实例方法,只能访问实例的实例变量 puts "#{@name}" end end p1

Java反射特性--获取其他类实例并调用其方法

1. 代码结构 .├── com│   └── test│   └── MyTest.java└── MainCall.java 2. 代码内容 MyTest.java: package com.test; public class MyTest { public void do_test() { System.out.println("Doing test...\n"); } } MaiCall.java import java.lang.reflect.Method; public