1 Wrapper class
OverLoading 名相同,参数不同,返回类型不要求
1. //public void println(double d){}
//public void println(boolean b){}
public void println(Object o){}0.
2. int num=3;
double d=num;
Integer it=new Integer(3);
Double dd=it;
基本类型数据int可以向double自动扩展,但是包装类型之间
不能自动的相互转换
public class TestWrapper2{
public static void main(String[] args){
// int ------ Integer
int i1=3;
Integer it1=new Integer(i1);
Integer it2=Integer.valueOf(i1);
int i2=it1.intValue();
// Integer -------- String
Integer it3=new Integer(5);
String str1=it3.toString();
Integer it4=Integer.valueOf(str1);
Integer it5=Integer.getInteger(str1);
Integer it6=new Integer(str1);
// int ----------- String
String str2="1234";
int i4=Integer.parseInt(str2); //********
String str3=Integer.toString(i4);
String str4=i4+"";
}
}
Equals方法覆盖
public class TestToString {
public static void main(String[] args) {
String str1 = new String("abc");
//String str = "Hello";
String str2 = new String("abc");
System.out.println(str1 == str2);
System.out.println(str1.equals(str2));
//System.out.println(str1.toString());
//System.out.println(str1);
Student s1 = new Student("zhangsan" , 18);
Student s2 = new Student("zhangsan", 18);
System.out.println(s1 == s2);
System.out.println(s1.equals(s2));
//System.out.println(s.toString());
//System.out.println(s);
}
}
class Student{
String name;
int age;
public Student(String name,int age){
this.name = name;
this.age = age;
}
//设置toString方法覆盖,不然父类的方法的方法是打印地址。
public String toString() {
return "Name is " + name + " Age is " + age;
}
//设置equals方法的判断条件
public boolean equals(Object o) {
//标准的5步
if(o == null) return false;//1.是空就返回false
if(o == this) return true;//2.是自己就返回true
//if(!(o instanceof Student)) return false;//可以先这样写,标准写法是下面的
if(!(o.getClass() == this.getClass())) return false;//3.不是是同一种类就返回false
Student s = (Student)o;//4.强转
//判断名字和年龄都相等才相等
return (this.name.equals(s.name)) && (this.age == s.age);//5.根据具体数据判断
//return this.name.equals(s.name);//认为名字相等就相等//不是递归调用
//return this.age == s.age;//认为年龄相等就相等
/***************************************
*** Student s = (Student) o;
*** if(this.age == s.age) return true;
*** else return false;
***************************************/
}
}
--------------------------------------------------------------------------------------------------------
Private 方法,属性 本类
Default 方法,属性,类 在包
Protected 方法,属性 本包和子类
public 全部 到处可见
内部类:定义在其他代码块(类体或者方法体)里的类称为内部类。
编译后每一个内部类都会有自己的独立的字节码文件,文件名Outer$inner.java。
根据位置和修饰符的不同分为四种
1 member inner class 成员内部类
2 static inner class 静态内部类 (嵌套内部类)
类以内,方法之外,有静态修饰(static 可以 修辞内部类)
3 local inner class 局部内部类
方法里的类
4 annonymous inner class 匿名内部类
没有名字的类,只有这种没有构造方法。
Static inner class
1 定义的位置:类以内,方法之外,有静态修饰(static 可以 修辞内部类)
2 本身能定义的属性和功能:所有的属性和功能,包括静态和非静态
3 能直接访问什么:只能访问外部类的静态的功能和属性
4 怎么创建对象:outer.inner in=new outer.inner()
Member inner class 当作成员变量
1 定义的位置:类以内,方法之外
2 本身能定义的属性和功能:只能定义非静态的属性和方法
3 能直接访问什么:能访问外部类的所有的属性和功能
4 怎么创建对象:
Outer.Inner in1=new outer().new Inner()
Outer.Inner in2=outer.new Inner();
在Outer里提供一个getInner(),返回内部类的对象。
只要是类与接口就有字节码文件。
Local inner class 当作局部变量
1 定义的位置:方法之内,不能用public和static
2 本身能定义的属性和功能:只能定义非静态的属性和功能
3 能直接访问什么:能访问外部类的静态的功能和属性,以及方法的用final修饰的局部变量
4 怎么创建对象:相当于局部变量,只能在方法里创建对象。
Annonymous inner class
1、个特殊的局部内部类,没有名字,没有构造方法,可以实现一个接口或者继承一个类,生命周期里只能产生一个对象。
2、除了没有名字外,能定义的和能访问的都和普通的局部内部类一致。
3、当你试图创建接口或者抽象类对象的时候,用匿名内部类表示类本的{}紧跟在构造方法之后,调用匿名内部类的方法只能用写类时创建的那个对象。
public class T1{
public static void main(String[] args){
T1 t1=new T1();
/*int i=Integer.parseInt(args[0]);
Teacher t=t1.getTeacher(i);
t.teach(); */
t1..set(new Teacher(){
public void teach(){
System.out.println("CoreJava");
}
} , 3);
}
public void set(Teacher t,int num){
t.teach();
System.out.println(num);
}
public Teacher getTeacher(int num){
class George implements Teacher{
public void teach(){
System.out.println("EJB");
}
}
if(num==1) return new Teacher(){
public void teach(){
System.out.println("CoreJava");
}
};
else if(num==2) return new Teacher(){
public void teach(){
System.out.println("Web");
}
};
else return new Teacher(){
public void teach(){
System.out.println("EJB");
}
};
}
}
interface Teacher{
void teach();
}
class Outer{
public void get(){
Teacher t=new Teacher(){
public void teach(){ }
};
t.teach();
}
}
class A implements Teacher{
public void teach(){}
}
内部类也是类,也能继承和实现接口。
内部类的作用:
1. 不破坏访问权限的情况下,可以使用外部类的私有成员变量和方法。
2. 将接口公开,将实现类作成内部类隐藏起来,强制要求使用者使用接口,强制降低偶合度。
3. java通过接口和内部类两种机制来实现多继承。
关键字
Abstract do implements private throw boolean double import protected throws break else imstanceof public transient byte
Extends int return true case false interface short
Try catch final long static void char finally
Native super volatile class float new switch while
Continue for null synchronized default if package this goto const
分享到:
相关推荐
### CoreJava学习笔记 #### 一、JAVA特点与运行原理 **JAVA特点:** 1. **简单性**:Java的设计者们将C++语言中许多不易理解和容易混淆的部分去除,使得Java更容易理解与掌握。 2. **面向对象**:Java几乎一切都...
CoreJava DAY11 内部类 70 CoreJava DAY12 集合 List 78 CoreJava DAY13 集合 Set 85 CoreJava DAY14 集合 Map 92 CoreJava DAY15 异常、断言 98 CoreJava DAY16 反射、注释 108 CoreJava DAY17 GUI 120 CoreJava ...
根据提供的文件信息,我们可以推断出这是一套关于CoreJava的视频教程。下面将围绕CoreJava的核心知识点进行详细的介绍。 ### CoreJava基础知识 #### Java语言简介 Java是一种广泛使用的、面向对象的编程语言,由...
【标签】:“corejava” 在计算机编程领域,Core Java是指Java的核心部分,它是Java技术的基础,涵盖了Java语言的基础语法、面向对象编程概念、图形用户界面(GUI)开发以及网络编程等方面。以下是对这些知识点的...
CoreJava_day11的学习笔记主要涵盖了集合框架,特别是关于List、Set和Map接口,以及ArrayList、Vector和LinkedList等具体实现类的知识点。 首先,集合框架是用来存放对象的对象,它提供了一组接口和类,使得我们...
总之,《CoreJava-达内内部资料》是一份全面且深入的Java学习资源,无论你是初学者还是有一定经验的开发者,都能从中受益匪浅。通过系统地学习这份资料,你将能够掌握Java编程的核心技术,为自己的职业生涯打下坚实...
《CoreJava12示例代码》是一份针对Java编程语言深度学习的重要资源,主要涵盖了CoreJava12版本中的核心概念和特性。这份压缩包文件包含了丰富的示例代码,旨在帮助开发者深入理解Java语言的各个方面,提升编程技能。...
在Java编程语言中,SortedSet接口是Set接口的一个子接口,它添加了对集合元素排序的能力。SortedSet接口要求其实现类必须维护元素的排序顺序,这种顺序可以是元素的自然顺序(即元素自身可比较),也可以是通过提供...
《CoreJava的21天课程》是一门深入学习Java编程的系统教程,涵盖了从基础到高级的全方位知识。这门课程旨在帮助学员在21天内掌握Java编程的核心概念和技术,每天的学习内容包括详细的代码示例和课堂笔记,确保学习者...
Core Java 是学习 Java 编程的基础,它包含了 Java 编程的核心概念和技术。本文将深入探讨 Core Java 的基本知识,适合初学者作为入门指南。 #### 二、Java 核心概念与基础知识 ##### 1. 标识符与关键字 - **...
"Core Java 2nd Edition, Volume I & Volume II's Code" 提供了全面深入的学习资源,帮助开发者更好地理解和掌握Java的核心概念。这个压缩包包含两个部分:v1和v2,分别对应《核心Java 2nd Edition》的第一卷和第二...
### Core Java 学习知识点概览 #### 一、Java 的历史与发展 ...以上是基于提供的核心Java学习书籍的简要知识点总结。这些概念构成了Java编程的基础,掌握它们对于学习更高级的Java技术和框架至关重要。
通过阅读《Core Java 7th》,读者不仅可以掌握Java 7的核心概念和技术,还能培养良好的编程习惯和问题解决能力,为进一步学习Java 8及以上版本打下坚实基础。书中的实例和练习题有助于巩固理论知识,提升实践技能。
《Core Java.JAVA核心技术(中文版)》是学习Java编程的重要参考资料,主要涵盖了Java语言的基础以及进阶知识。这本书深入浅出地讲解了Java的核心概念和技术,为读者提供了全面而细致的学习路径。以下是对该书内容的...
CoreJava的源码揭示了这些类的内部实现,如数组和链表的区别,以及哈希映射的工作原理。 5. **多线程**:Java提供内置支持进行多线程编程,通过`Thread`类和`Runnable`接口实现。理解源码可以让我们知道如何控制...
在Java编程语言中,"CoreJava_day10"的学习笔记主要涵盖了两个核心概念:自动装箱和自动解箱,以及内部类和枚举。这些知识点是理解Java面向对象特性的关键部分。 首先,我们来详细讲解自动装箱和自动解箱。在Java 5...
### CoreJava面试宝典知识点详解 #### Java变量的基本概念 - **变量的性质**:在Java中,变量类似于自然语言中的代词,用于存储数据。 - **Java的类型特性**: - Java是一种**强类型语言**,这意味着每个变量都...
"CoreJava代码"这个主题涵盖了Java编程语言的基础到高级概念,是Java开发人员必须掌握的核心知识。在这一压缩包中,我们很可能找到了一系列用于演示和练习这些概念的源代码文件。下面,我们将深入探讨Java的一些关键...