JAVA学习

输出:

printf:可以进行格式化输出,不换行;

print:标准输出,不换行;

println:标准输出,但会换行。

标号:

在循环前放一个标号来标示该循环,那么带标示的break或者continue将对该循环起作用。

OUT:
for(int one = 0;one<=amount;++one)
{
    for(int five=0;five<=amount;++five)
    {
        break OUT;
    }
}

如上代码段所示,此时break跳出的是第一个循环而不是嵌套进入的第二个循环。

布尔类型:

boolean a = true;

定义此种类型的变量,变量值只能是true或者false

运算符的优先级:

num[].length--->代表数组num的长度;其中“.”代表一种运算表示调用。

FOR-EACH循环

int[] a= new int[5];
for(int k:a)
{
    System.out.print(k+" ");
}

该循环表示k依次等于数组a中的 每一个元素。

String

String是一个类,String 的变量是对象的管理者而非所有者,

String s = new String("hello");

String s = "hello";

private:只有这个类内部可以访问

类内部指的是类的成员函数和定义初始化

这个限制是对类的而不会是针对对对象的,因此对于同一个类的不同对象是可以访问的。

this

this是成员函数的一个特殊的固有的本地变量,它表达了调用这个函数的那个变量。

本地变量与成员变量

本地变量:是定义在函数内部的变量,其作用域和生存期都是在函数内部;

成员变量:其生存期是对象的生存期,其作用域是类内部的成员函数。

构造函数:

和类名字相同的函数叫做构造函数,构造函数可以含参也可以不含参数,但是构造函数一定没有任何返回类型

对象数组中存放的是对象的地址而不是对象本身。

HashSet本质是一个集合所以其中不会有重复的元素,并且元素是无序的。

容器类

容器类有两个类型一个是容器类型,例如:ArrayList;一个是其中元素类型,例如:String.

函数的重载:

同名的两个函数,但是两个函数的参数表不同这样就是两个函数,这就叫做函数的重载。

继承:

在继承关系中父类中private的变量是不能够在子类中进行使用;解决此类问题的方案:1、将父类中的变量改为protected,这样子子类就可以使用该变量,但是这种情况要求子类与父类应该在同一个包里边,即同一个package里边;2、可以在父类中进行private变量的初始化,而后在子类中利用super(item)将该变量传递给父类,在父类里初始化之后在继承给子类。

子类与子类型:

类定义了类型;子类定义了子类型;

子类的对象可以被当作父类的对象使用:

1、赋值给父类的对象;

2、传递给需要父类对象的函数;

3、放进存放父类对象的容器中。

1、

2、 

3、

String创建机制:

1、直接复制时,先在常量池中寻找是否有对应的字符串,若有,直接将引用的变量指向常量池中字符串的地址,若无,则在常量池中创建该字符串,再将其地址赋给引用变量。

2、new String(String original)创建时,先在堆中创建一个字符数组空间,然后再去常量池中寻找是否有对应的字符串,若有,则将常量池中该字符串赋给堆中的字符数组,然后将引用变量指向该数组;若无则先在变量池中创建该字符串,然后将引用变量指向该数组。

package douyin;

public class douyin {
	public static final String A = "ab"; 

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		String s="ab";
		String a ="a";
		String b = "b";
		String c = a+b;
		String m = "a"+"b";
		String n = new String("ab");
		
		System.out.println(A==s);
		System.out.println(A==c);
		System.out.println(A==s.intern());
		System.out.println(A==c.intern());
		System.out.println(c);
		System.out.println(c.intern()==s.intern());
		System.out.println(c.equals(s));
		System.out.println(m==c);
		System.out.println(m==s);
		System.out.println(m==n);
		System.out.println(A==n);


	}

}

结果:true
           false
           true
           true
           ab


           true
           true
           false
           true
           false
           false

造型cast:

1、子类的对象可以赋值给父类的对象,但是应当注意!Java中不存在对象对对象的赋值

2、父类的对象不能赋值给子类的变量!

Vechicle v;
Car c = new Car();
v = c;//可以
c = v;//编译错误

但是将父类的对象赋值给子类的变量可以使用造型:

c = (Car) v;此处使用的就是造型。造型和类型强制转换是两个不同的东西。造型是把一个对象当作另外一种类型来看待,而不是把它改造成了另外一种类型;而类型转换是将对象改造成了另外一种类型,例如浮点型的10.2在进行类型转换时:(int)10.2,在这之后10.2被改造成了10。


函数调用的绑定:(所谓的多态就是通过一个变量去调用一个函数)

当通过对象变量点用函数的时候,调用那个函数这件事情叫做绑定

静态绑定:根据变量的声明类型来决定

动态绑定:根据变量的动态类型来决定

在成员函数中调用其他成员函数也是通过this这个对象变量来调用的,这也是一种动态绑定。

覆盖override:

子类和父类中存在名称和参数表完全相同的函数,这一对函数构成覆盖关系。

通过父类的变量调用存在覆盖关系的函数时,会调用变量当时所管理的对象所属的类的函数。

抽象

抽象函数:表达概念而无法实现具体代码的函数。

抽象类:表达概念而无法构造出实体的类。 

带有abstract修饰符的函数,有抽象函数的类一定是抽象类,抽象类不能制造对象,但是可以定义变量。

接口

接口是纯抽象的类,所有的成员函数都是抽象函数;所有的成员变量都是public static final。

接口规定了长什么样,但不管里面是什么。

interface是一种特殊的class。

接口用implements,类可以实现很多接口,接口可以继承接口,但不能继承类,接口不能实现接口。

设计程序时先定义接口,在实现类;任何需要在函数间传入传出的一定是接口而不是具体的类;

内部类

定义在别的类内部、函数内部的类,内部类能直接访问外部的全部资源,包含任何的私有的成员,外部是函数时,只能访问那个函数里final的变量。

匿名类:在new对象的时候给出的类的定义形成了匿名类,匿名类可以继承某类,也可以实现某接口,Swing的消息机制广泛使用匿名类。

注入反转

由按钮公布一个守听者接口和一对注册/注销函数,你的代码实现那个接口,将守听者对象注册在这个按钮上,一旦按钮被按下,就会反过来调用你的守听者对象的某个函数。

JTable:用JTable类可以以表格的形式显示和编辑数据。JTable类的对象并不存储数据,它只是数据的表现。

类的方法必须加上static,而实例方法则不用。

当一个类创建了一个对象后,这个对象就可以调用该类的方法。当类的子节码又件被加载到内存
时,类的实例方法不会被分配入口地址,当该类创建对象后,类中的实例方法才分配入口地址,从而实例方法可以被类创建的任何对象调用执行。

Format方法

format()用于格式化方法,即用于字符串和变量的显示效果,例如:

a="{1}说他写完作业了,但{0}不相信他".formate("老师","张三");
print(a);   //张三说他写完了作业,但老师不相信他

有参数序号按照序号使用,没有参数序号则按照顺序使用。注意序号从0开始。

 例:

a="{:-^25}".format('小红迟到了');
print(a);
//----------小红迟到了----------

Length与Length()的区别

length是属性,一般集合类对象拥有的属性。取得集合的大小,例如数组,可以知道数组的长度。

length()是方法,一般字符串类对象有该方法,可以取得字符串的长度。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值