IDEA的安装
文本编辑器(TE)------------------------------
记事本,Notepad++(建议使用Notepad- -,具体可以百度,这些下载方式也可以百度,当然,如果后面出现使用Notepad++,说明是很久之前操作的了),Edit Plus,UltraEdit,…
Notepad- -下载地址(两个-不能放一起,否则会变成一个大-,所以这里使用空格隔开了,这可能是csdn的问题吧):
链接:https://pan.baidu.com/s/10Z-2YU2QsUc3qkwPMqU7Zg
当然Notepad++也可以使用,因为只考虑功能的话,的确很厉害
集成开发环境(IDE)------------------------------
Jbuilder,NetBeans,Eclipse,MyEclipse,IDEA,…
下载和安装方式------------------------------
下载地址:https://www.jetbrains.com/
安装方式:一路点击下一步默认安装即可,具体创建项目可以百度
案例题目------------------------------
编程实现Animal类的封装,特征有:名字和毛色,要求提供打印所有特征的方法
编程实现Dog类的封装并继承自Aniaml类,该类的特征有:牙齿数量,要求提供打印所有特征的方法
编程实现DogTest类,在main方法中分别使用无参和有参方式构造Dog类型对象并打印特征
package com.lagou.task08;
public class Animal {
private String name;
private String color;
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(){
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);
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 d1 = new Dog();
d1.show();
Dog d2 = new Dog("旺财","白色",10);
d2.show();
}
}
对于继承来说
先执行父类的静态代码块,再执行子类的静态代码块
执行父类的构造块,执行父类的构造体
执行子类的构造块,执行子类的构造方法体
package com.lagou.task08;
public class SuperTest {
{
System.out.println("SuperTest类中的构造块!");
}
static {
System.out.println("SuperTest类中的静态代码块!");
}
public SuperTest() {
System.out.println("SuperTest类中的构造方法体!");
}
public static void main(String[] args) {
SuperTest st = new SuperTest();
}
}
package com.lagou.task08;
import static java.lang.System.out;
public class SubSuperTest extends SuperTest {
{
System.out.println("==========SubSuperTest类中的构造块!");
}
static {
System.out.println("==========SubSuperTest类中的静态代码块!");
}
public SubSuperTest() {
out.println("==========SubSuperTest类中的构造方法体!");
}
public static void main(String[] args) {
SubSuperTest sst = new SubSuperTest();
}
}
常用的访问控制符------------------------------
public修饰的成员可以在任意位置使用
private修饰的成员只能在本类内部使用
通常情况下,成员方法都使用public关键字修饰,成员变量都使用private关键字修饰
注意:在有些时候,JVM是会给某些类一些限制的(一般是注解导致,或者底层导致),导致上面的权限可能多或者少(具体可以百度)
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;
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;
public FinalMemberTest(){
cnt = 3;
}
public static void main(String[] args) {
FinalMemberTest fmt = new FinalMemberTest();
System.out.println("fmt.cnt:" + fmt.cnt);
}
}
常量的概念------------------------------
在以后开发中很少单独使用final关键字来修饰成员变量,通常使用public static final关键字共同修饰成员变量来表达常量的含义
常量的命名规范要求所有字母都要大写,不同的单词之间采用下划线连接(当然,只是要求,所以不大写也行)
如:public static final double PI = 3.14;