java面向对象(基础)

一:面向对象

1.封装性,继承性,多态性  

2.对象要实例化

3.对象引用传递(实例化一个对象per1 ,再建一个空对象per2  = per1,per1和per2 指向同一个内容,共同变化)

4.命名在栈内存中,内容在堆内存中




二:封装

封装——类打包——私有,公有——set和get方法设置和得到私有属性

1.构造方法:

1)在这里可以对类中属性进行初始化。

2)构造方法可以重载。


2.匿名对象:没有明确的给出名称的对象。(没有栈内存的引用,只在堆内存中开辟空间)一般匿名对象只使用一次

如:new Person(“张三”,30 ). tell ( ); 没有Per person1=new Person(“张三”,30); person1.tell ( );


3:String类: 

1)实例化,String name = “LiXiaoHua”  ;      或       String name = new String ("LiXiaoHua"); 

2)String 类其实就是匿名对象。证据:“Hello”.equals(“Hello”);  输出为 true

3)比较:int类型  “ == ”进行内容比较,而 String类型的 “==” 进行地址比较,而String 类型的str1.equals(str2) 进行内容比较

4)堆内存和栈内存:直接赋值 String str1 = “Hello”;String str2 = “Hello”;他们的地址相同,栈内存不同,而堆内存相同

new 的话,用String()构造函数 会产生垃圾,就是相同的字符串开辟了一个新的堆内存,浪费!

str = str +“123” 会指向新的堆内存

5)String类的常用操作方法

public char charAt(int index)
返回字符串中第index个字符;
public int length()
返回字符串的长度;
public int indexOf(String str)
返回字符串中第一次出现str的位置;
public int indexOf(String str,int fromIndex)
返回字符串从fromIndex开始第一次出现str的位置;
public boolean equalsIgnoreCase(String another)
比较字符串与another是否一样(忽略大小写);
public String replace(char oldchar,char newChar)
在字符串中用newChar字符替换oldChar字符
public boolean startsWith(String prefix)
判断字符串是否以prefix字符串开头;
public boolean endsWith(String suffix)
判断一个字符串是否以suffix字符串结尾;
public String toUpperCase()
返回一个字符串为该字符串的大写形式;
public String toLowerCase()
返回一个字符串为该字符串的小写形式
public String substring(int beginIndex)
返回该字符串从beginIndex开始到结尾的子字符串;
public String substring(int beginIndex,int endIndex)
返回该字符串从beginIndex开始到endsIndex结尾的子字符串
public String trim()
返回该字符串去掉开头和结尾空格后的字符串
public String[] split(String regex)
将一个字符串按照指定的分隔符分隔,返回分隔后的字符串数组

更多可以查看JDK文档。


4.内部类:类中可以再定义一个类。

一个人有一本书,有一个孩子。

(person类中定义book类和person类,book类中定义person类,相互连接只有一个)


5.this.调用本类属性或构造方法(注意留出口,小心递归)

this表示当前对象


6.static :全局数据区,可以用于属 创建类的个数,也可以用来编号(this.name = “num”+count (count为static)count++)

static方法只能调用static属性。

静态代码块要比main函数 要快

构造方法私有化,可以用static 局部实例化 static Person  per = new Person();

若私有的,static 内部实例化,再用一个public 访问,这样的话,多个对象只有一个实例(可以控制实例化对象)

class 类{
    private static 类 他 =new 类();
    private 类();
    public static 类 get他(){
    return 类;
    }
}


7.内部类

1)static 定义内部类

2)在外部访问

3)方法中定义内部类  (内部类不能直接被访问)+final 关键字

class Outer{
    private String info = "hello world!";
    public void fun(final int temp){
        class inner{
            public void printf(){}
       }
    }
}
public class 
.....main(){
    new Outer().fun(30);
}






你可能感兴趣的:(.....java学习)