栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

java笔记1.04

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

java笔记1.04

1. 方法
  1. 也就是cpp类里面的函数
    修饰符+返回类型+名字+(参数列表)+{块}
    public void function(int a){;}

  2. 对c1类中的上两个change方法和下两个change方法做区分
    知道明确其区别

public class test01 {
    public static void main(String[] args) {
        System.out.println("he");
    }
}

class c1 {
    public int a = 10;

    public void change0() {
        a = 20;
    }

    public void change1(int num) {
        a = num;
    }

    public void change2(c1 ClassName) {
        ClassName.a = 20;
    }

    public void change2(c1 ClassName, int num) {
        ClassName.a = num;
    }
}
  1. 重载
    java重载当然也是有的,记住一点即可
    重载要求:参数列表不同,可以根据参数区分不同的重载函数
2. 对象构造,初始化
  1. 和cpp没啥两样,当然,构造方法也支持重载
class ClassName{
	// 无参构造
	void ClassName(){
	......
	}

}
  1. 不过有个比较s的操作,就是可以通过this来指向其他构造方法
class c1 {
    int num = 10;

    public c1(int a) {
        num = a;
    }
    public c1() {
    	// 调用上面的构造方法,参数120
        this(120);
    }
}
  1. 析构方法finalize()
    java的析构长得比较别致
    protected void finalize() throws Throwable
public class test01 {
    public static void main(String[] args) {
        c1 testc1 = new c1();
        // 将不用的变量置为null,或者野指针,让虚拟机去管理内存
        testc1 = null;
        // 用于内存回收,尝试去释放(野指针,空指针)
        System.gc();
    }
}
class c1 {
    protected void finalize() throws Throwable {
        System.out.println("I was free by memory");
    }
}

析构被调用了

3. 继承

只要是个面向对象基本上逃不掉:封装继承多态
继承关键字extends
修饰符+class 子类名+extends+父类名
{…}
java所有类都继承了Object类
Java中所有类,都会有Object类的方法
getClass():返回该对象所属的类
toString();返回类名
class.equal(class):判断俩类是否相等
clone():对象克隆(前面讲过,对象不可以直接等号赋值,那是引用)
hashCode() :f返回该对象哈希码值

这个toStirng挺有意思的,返回其类名

public class test01 {
    public static void main(String[] args) {
        c1 testc2 = new c1();
        System.out.println(testc2.toString());
    }
}

class c1 {
    int a = 10;
}

4. 转换对象

这是j一个比较特别的地方
有点像int和float,int 可以转float,但是反过来却不行
instanceof对象判断是否归属某类

public class test01 {
    public static void main(String[] args) {
    // 有点不能理解,和我想得相反,不应该是大的可以包纳小的吗
        c1 testc2 = new c2();
        System.out.println(testc2.a);
        if (testc2 instanceof c1) {
            System.out.println("testc2是c1类");
        } else {
            System.out.println("testc2是c2类");
        }
    }
}

class c1 {
    public int a = 10;
}

class c2 extends c1 {
    public int b = 20;
}
}

方法自变量
根据以上特性,方法的参数也可以产生**“多态性”**可以接受不同种类的对象了

异类集合
同理,也可以把多种不同的类对象,塞到同一个数组中

5. 方法重写

真*重写,真的就继承之后重写一遍就重写了
super调用父类
super和前面this的用法一样,也可以调用父类构造
注意:要调用父类构造,必须子类没有任何操作

注意点:
重写后的权限:访问权限不能小于父类的,权限还是得继承的
重写抛出异常不能多于父类

public void function()throw IOExcetion{}
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/871529.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号