JAVA再学习-第六章对象,类,包和接口
2015-04-10 15:16
381 查看
1.JAVA用NEW实例化一个对象
package com.java.ch2;
public class hello {
int a;
public static void main (String arge[]) {
System.out.println("hello!");
}
}
2.this调用重载构造方法
this调用必须在构造方法的第一个语句
package UnderstandThis;
public class employee {
public String aString;
public String bString;
public employee(String a,String b){
aString = a;
bString = b;
}
public employee(String a){ //此构造方法有一个参数传入,this将控制权交给两个参数的构造方法
this("mei","mei");
}
public employee(){ //无参数传入,this将控制权传给一个参数的构造方法
this("mei");
}
}
3.构造方法主要实现对象的初始化(构造一个新类时,系统会自动调用构造方法对对象初始化)
构造方法总是和new一起调用
详见Javaapp包
4.继承
面向对象语言特有
JAVA不支持多继承,但支持接口概念
子类能够继承父类的所有方法和变量,但不能继承父类的构造方法
子类不能访问父类private成员
(1) 方法覆盖:不使用super,则一直用子类自己中的方法
子类重定义父类方法时,保持相同方法声明,参数,返回值
final类不可被继承
方法重写override:父类与子类方法相同,参数相同,则子类使父类方法隐藏
方法重载overloading:同一个类中相同名字的方法,参数和返回值各不相同(this)
(2)父子类型之间转换
teacher tom=new teacher();
employee a= tom; //子类型可以直接赋值给父类型
teacher b=(teacher) a; //父类型数据转换成子类型需要强制类型转换加()
注:没有第一句直接用a 赋值给b不可,因为找不到a的实例对象
5.多态
类定义出现多个构造方法或多个同名成员方法
静态多态:方法重写(构造方法,成员方法) 虚拟机通过查找参数列表选择合适的方法
动态多态:方法重构
6.封装
public:所有软件包的各种成员都可以访问
protected:
7.接口(实现多重继承)
接口所有成员域具有public,static,final属性
接口所有成员方法具有public,abstract属性
内部类,内部类所在的类为外部类
不具有静态属性的内部类需要加final属性
匿名内部类可以起到在父类之外的内部类中继承父类,不用写构造方法从而覆盖父类方法函数的作用。
package com.java.ch2;
public class hello {
int a;
public static void main (String arge[]) {
System.out.println("hello!");
}
}
2.this调用重载构造方法
this调用必须在构造方法的第一个语句
package UnderstandThis;
public class employee {
public String aString;
public String bString;
public employee(String a,String b){
aString = a;
bString = b;
}
public employee(String a){ //此构造方法有一个参数传入,this将控制权交给两个参数的构造方法
this("mei","mei");
}
public employee(){ //无参数传入,this将控制权传给一个参数的构造方法
this("mei");
}
}
3.构造方法主要实现对象的初始化(构造一个新类时,系统会自动调用构造方法对对象初始化)
构造方法总是和new一起调用
详见Javaapp包
4.继承
面向对象语言特有
JAVA不支持多继承,但支持接口概念
子类能够继承父类的所有方法和变量,但不能继承父类的构造方法
子类不能访问父类private成员
(1) 方法覆盖:不使用super,则一直用子类自己中的方法
子类重定义父类方法时,保持相同方法声明,参数,返回值
final类不可被继承
方法重写override:父类与子类方法相同,参数相同,则子类使父类方法隐藏
方法重载overloading:同一个类中相同名字的方法,参数和返回值各不相同(this)
(2)父子类型之间转换
teacher tom=new teacher();
employee a= tom; //子类型可以直接赋值给父类型
teacher b=(teacher) a; //父类型数据转换成子类型需要强制类型转换加()
注:没有第一句直接用a 赋值给b不可,因为找不到a的实例对象
5.多态
类定义出现多个构造方法或多个同名成员方法
静态多态:方法重写(构造方法,成员方法) 虚拟机通过查找参数列表选择合适的方法
动态多态:方法重构
</pre><pre id="best-content-356372067" class="best-text mb-10" style="margin-top:0px; margin-bottom:10px; padding:0px; font-family:arial,'courier new',courier,宋体,monospace; white-space:pre-wrap; word-wrap:break-word; color:rgb(51,51,51); font-size:14px; line-height:24px; background-color:rgb(241,254,221)">这里为了避免发生覆盖的情况通常避免同名 结合到楼主的例子里 int c=super.multiply(a,b); 应该为 int c=SuperCaic.multiply(a,b);
6.封装
public:所有软件包的各种成员都可以访问
protected:
</pre><pre name="code" class="java">
</pre><pre name="code" class="java">
package Static; public class book { public static int booknumber=0;//booknumber是静态成员变量 public int bookid; public book(){ booknumber++; } public void getid(){ System.out.println("当前书的编号是:"+bookid); } public static void getnumber(){ //静态成员方法 System.out.println("当前书的数量是"+booknumber); } public static void main(String args[]) { book aBook=new book(); book bBook=new book(); aBook.bookid=001; bBook.bookid=002; System.out.println("a书的编号为:"); aBook.getid(); System.out.println("b书的编号为:"); bBook.getid(); //非静态域依附于实例对象,开辟出各自内存 aBook.getnumber(); //静态成员域共用一个内存空间 bBook.getnumber(); book.getnumber(); } }因为静态成员方法隶属于类所对应的对象,所以他没有所对应的的当前实例对象,从而在定义静态成员方法的方法体中不能采用关键字this
7.接口(实现多重继承)
接口所有成员域具有public,static,final属性
接口所有成员方法具有public,abstract属性
内部类,内部类所在的类为外部类
不具有静态属性的内部类需要加final属性
内部类作用在于。增加相关的那个外部类的 扩展性。。。然后别的类用不着的东西。可以通过内部类去实现,比如事件类就适合。
内部类分为: 成员内部类、静态嵌套类、方法内部类、匿名内部类。 (1)、内部类仍然是一个独立的类,在编译之后内部类会被编译成独立的.class文件,但是前面冠以外部类的类名和$符号。 (2)、内部类不能用普通的方式访问。内部类是外部类的一个成员,因此内部类可以自由地访问外部类的成员变量,无论是否是private的。 (3)、内部类声明成静态的,就不能随便的访问外部类的成员变量,仍然是只能访问外部类的静态成员变量。
匿名内部类可以起到在父类之外的内部类中继承父类,不用写构造方法从而覆盖父类方法函数的作用。
public class innertest { public static void main(String args[]) { test aTest=new test() { public void method() { System.out.println("dataouter"+dataouter); } }; aTest.method(); } }关于接口与抽象类详见”JAVA中的接口与抽象类“。
相关文章推荐
- Java学习日记之类和对象还要掌握:抽象类和接口
- Java学习笔记-对象-继承-接口-多态-内部类
- Java基础学习中,关于面向对象中多态、抽象类、接口的总结
- 【学习笔记10】java面向对象-接口
- Java学习笔记10(面向对象三:接口)
- Java面向对象学习笔记 -- 5(抽象类、接口)
- java学习日记_43:面向对象之接口
- JavaSE入门学习20:Java面向对象之接口(interface)(一)
- Java学习第六_八天:面向对象__继承_接口_多态
- JAVA基础学习(七)---面向对象三---继承,接口与 抽象类
- [core java学习笔记][第六章接口与内部类]
- [core java学习笔记][第六章接口与内部类]
- 【学习笔记11】java面向对象-接口与类、接口与接口之间的关系
- JavaSE入门学习21:Java面向对象之接口(interface)(二)
- Java学习第8天(5):面向对象-继承-接口
- Java学习笔记——利用接口和observer实现对象监视
- JAVA基础学习之流的简述及演示案例、用缓冲区方法buffer读写文件、File类对象的使用、Serializable标记接口(6)
- java第六章学习笔记:对象和类---java世界的细胞
- java学习笔记---第六章接口与内部类
- 3.java面向对象语法学习(部分2-抽象类,接口,内部类)