15-IDEA的安装

15-IDEA的安装,第1张

15-IDEA的安装
IDEA的安装
文本编辑器(TE)------------------------------ 记事本,Notepad++,Edit Plus,UltraEdit,… 集成开发环境(IDE)------------------------------ Jbuilder,NetBeans,Eclipse,MyEclipse,IDEA,… 下载和安装方式------------------------------ 下载地址:https://www.jetbrains.com/ 安装方式:一路点击下一步默认安装即可 案例题目------------------------------ 编程实现Animal类的封装,特征有:名字和毛色,要求提供打印所有特征的方法 编程实现Dog类的封装并继承自Aniaml类,该类的特征有:牙齿数量,要求提供打印所有特征的方法 编程实现DogTest类,在main方法中分别使用无参和有参方式构造Dog类型对象并打印特征

package com.lagou.task08;  //package 包(文件夹),是关键字


    //Animal在上面的,模块二代码.com.lagou.task08包里
    //右键点Show in Explorer打开当前文件位置
    //Refactor重构 -> Rename重命名
    //
public class Animal {

    private String name;
    private String color;
    //右键Generate 里面可以自动生成代码,如get和set和构造方法
    public Animal() {
    }
    public Animal(String name, String color) {
        setName(name);
        setColor(color);
    }
    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getColor() {
        return color;
    }


    public void setColor(String color) {
        this.color = color;
    }
    public void show(){
        //sout 回车 生成打印语句
        System.out.println("名字:" + getName() + ",颜色:" + getColor());
    }
}

package com.lagou.task08;


public class Dog extends Animal {
    private  int tooth;

    public Dog() {
        super();//表示调用父类的无参构造方法
    }

    public Dog(String name, String color, int tooth) {
        super(name, color); //表示调用父类的有参构造方法
        //idea会自动保存,不用时刻ctrl s了
        setTooth(tooth);
    }

    public int getTooth() {
        return tooth;
    }

    public void setTooth(int tooth) {
        if(tooth > 0) {
            this.tooth = tooth;
        }else{
            System.out.println("数量不合理哦");
        }
    }

    @Override
    public void show() {
        super.show();
        System.out.println("牙齿数量是:" + getTooth());
    }
}

package com.lagou.task08;


public class DogTest {
    public static void main(String[] args) {
        //使用无参方式构造Dog类型的对象并打印特征
        Dog d1 = new Dog();
        d1.show();

        //使用有参方式构造Dog类型的对象并打印特征
        Dog d2 = new Dog("旺财","白色",10);
        d2.show(); //旺财 白色 10
    }
}

对于继承来说 先执行父类的静态代码块,再执行子类的静态代码块 执行父类的构造块,执行父类的构造体 执行子类的构造块,执行子类的构造方法体
package com.lagou.task08;

public class SuperTest {

    {
        System.out.println("SuperTest类中的构造块!"); // (2)      c
    }

    static {
        System.out.println("SuperTest类中的静态代码块!"); // (1)    a
    }

    public SuperTest() {
        System.out.println("SuperTest类中的构造方法体!"); // (3)    d
    }

    public static void main(String[] args) {

        // 使用无参方式构造对象
        SuperTest st = new SuperTest();
    }
}

package com.lagou.task08;

// 导入java目录中lang目录中System类中的静态成员out  很少使用
import static java.lang.System.out;

public class SubSuperTest extends SuperTest {

    {
        System.out.println("==========SubSuperTest类中的构造块!"); // (2)      e
    }

    static {
        System.out.println("==========SubSuperTest类中的静态代码块!"); // (1)   b
    }

    public SubSuperTest() {
        //System.out.println("==========SubSuperTest类中的构造方法体!"); // (3)  f
        out.println("==========SubSuperTest类中的构造方法体!");
    }

    public static void main(String[] args) {

        // 使用无参方式构造子类的对象
        SubSuperTest sst = new SubSuperTest();
    }
}

常用的访问控制符------------------------------ public修饰的成员可以在任意位置使用 private修饰的成员只能在本类内部使用 通常情况下,成员方法都使用public关键字修饰,成员变量都使用private关键字修饰

package语句的由来------------------------------ 在idea设置setting里的Build里面的compiler里可以设置idea自动编译,勾选Bulid开头的,可以设置自动编译 存放的编译的字节码文件在idea工作区间的out文件夹里 定义类需要指定类的名称,但如果仅仅将类名作为类的唯一标识,则不可避免的出现命名冲突的问题 这会给组件复用以及团队间的合作造成很大的麻烦 在Java语言中,用包(package)的概念来解决命名冲突问题 包的定义------------------------------ 在定义一个类时,除了定义类的名称一般还要指定一个包名,格式如下: package 包名 package 包名1.包名2.包名3…包名n; 为了实现项目管理,解决命名冲突问题以及权限控制的效果 定义包的规范------------------------------ 如果各个公司或开发组织的程序员都随心所欲的命名包名的话,仍然不能从根本上解决命名冲突的问题 因此,在指定包名的时候应该按照一定的规范 如:org.apache.commons.lang.StringUtil 其中StringUtils是类名,而org.apache.commons.lang是多层包名 其含义如下:org.apache表示公司或组织的信息(是这个公司(或组织)的域名的反写) common表示项目的名称信息 lang表示模块的名称信息 包的导入------------------------------ 使用import关键字导入类 使用import关键字导入静态成员,从Java5.0开始支持 final本意为"最终的,不可改变的",可以修饰类,成员方法以及成员变量 final关键字修饰类体现在该类不能被继承 主要用于防止滥用继承,如:java.lang.String类等 final关键字修饰成员变量方法体现在该方法不能被重写但可以被继承 主要用于防止不经意间造成的重写,如:java.text.Dateformat类中format方法等
package com.lagou.task08;


// ctrl+shift+/ 进行选中多行注释,再来一次取
// ctrl+/ 进行选中单行注释,再来一次取消
public class FinalClass {

    public void  show() {
        System.out.println("FinalClass类中的show方法");

    }

}

package com.lagou.task08;


public class  SubFinalClass extends  FinalClass {
    @Override
    public  void show() {
        super.show();
    }

    public static void main(String[] args) {
        SubFinalClass sfc = new SubFinalClass();
      sfc.show();
    }
}

final关键字修饰成员变量体现在该变量必须初始化且不能改变 主要用于防止不经意间造成改变,如:java.lang.Thread类中MAX_PRIORITY等
package com.lagou.task08;


public class FinalMemberTest {
    // private final int cnt = 1 ; //在声明变量的同时,给初始值,就叫显示初始化
    private final int cnt;
    
    public FinalMemberTest(){
        cnt = 3; //构造方法体中进行初始化 //之所以可以在构造里初始,因为new新建时,构造会先执行
    }
    public static void main(String[] args) {
        //声明FinalMemberTest类型的引用指向该类的对象
        FinalMemberTest fmt = new FinalMemberTest();
        //打印成员变量的数值
        System.out.println("fmt.cnt:" + fmt.cnt);
    }
}

常量的概念------------------------------ 在以后开发中很少单独使用final关键字来修饰成员变量,通常使用public static final关键字共同修饰成员变量来表达常量的含义 常量的命名规范要求所有字母都要大写,不同的单词之间采用下划线连接 如:public static final double PI = 3.14;

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zaji/5693400.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-17
下一篇 2022-12-17

发表评论

登录后才能评论

评论列表(0条)

保存