java面向对象小总结

类:

类就是对某一事物的描述(举例:蔬菜,水果,动物)

对象:

对象就是实际存在的事物的个体,(举例:蔬菜中某一种,人类(分男人和女人))

标准类:

【类的修饰字】 class 类名称 【extends  父类名称】【implements    接口名称列表】{

变量定义及初始化;        成员变量;

方法定义及初始化;        成员方法;

}

记住:继承只能继承一个类,可以实现多个接口,

static:静态方法,又称为类方法,static声明的变量值,所有对象使用的值都是一致的

调用静态成员变量,类名。静态成员

对象的定义:

对象的创建即对类的属性和行为的实现(类的实例化)

声明一个类的变量,就是声明了该类的一个实例,即对象,创建对象包括声明对象,实例化对象,即为对象分配存储空间两步

类名    对象名     = new    类名();        例如:A aa = new A();            A()叫做构造函数

--------------------------------------------

方法参数传递

public int s(int x ,int y){

return ? (返回值类型)

}

引用类型传递:

public A s(A a ){

return a ;

}

-----------------------------------------------------

面向对象的三大特点:封装,继承,多态

封装:    主要实现了隐藏细节,对用户提供访问接口,无需关心方法的具体实现。

继承:    继承能很好的实现了代码复用,提高饿了编程效率

类具有继承性,子类对父类的继承关系,体现了现实世界中特殊和一般的关系。

通过继承可以更有效的组织程序结构,明确类之间的关系。并充分利用已有的类来完成更复杂,深入的开发

class    <子类>    extends    <唯一的父类名>

{

<类定义体>

}

类之间只能单继承,不能多继承,下面这幅图:

子类可以继承父类所有的后成员变量和成员方法,但不能继承父类的构造方法。在子类的构造方法中可使用语句super(参数列表)调用父类的构造方法。

class    Student    extends    Person

{

public Students (String name ,int age ,String school){

super(name ,age);        //调用父类的构造方法

this.school    = school;

}

}

-------------

构造方法:

1,与类相同

2,没有返回值类型,不能用return

3,一般用public修饰

所有的类中都有一个默认的无参构造方法

重写构造方法后,默认的无参构造方法失效

构造函数主要用来做默认初始化

子类继承父类后

不能继承父类的构造方法,在new子类构造方法时候,默认去执行无参的构造方法

如果父类是重写为有参数的构造方法的话,子类必须重写构造方法

子类可以扩展自己成员

--------------------------------

重写和重载:

----------------------------------------------------------------------------------



内部类:

package day05;

/**

* 演示内部类1:内部类在方法外面

* 内部类有两种,一种在方法外面,。

* 一种在方法内部

* 内部类可以访问外部类的成员,包括私有成员,成员包括成员变量和成员方法

* 但是外部类不能访问内部类的成员

* 内部类生成的.class 文件        neibu$nimei.class

* 如果内部类没有static,里面成员不能用static修饰

* @author yw.wang

*

*/

public class neibu {

private int a = 1;

private void haha(){

System.out.println("fuckyou!!!");

}

public static void main(String args[]){

neibu n = new neibu();

//内部类的创建。并且如果引用变量,采用就近原则

//外部类.内部类     内部对象名 = 外部类对象.new  内部类();

neibu.nimei n1 = n.new nimei();

n1.usehaha();

neibulei2 n2 = new neibulei2();

n2.show2();

}

class nimei{

//public static int a = 10;

public void show(){

System.out.println("我是一个show方法");

System.out.println(a);

}

public void usehaha(){

haha();

}

}

static class neibulei2{

public void show2(){

System.out.println("我是第二个内部类,加了静态,相当于普通类");

}

}

}

内部类在方法内部:

package day05;

public class Test03 {

public void a() {

class xinlei {

public void b() {

System.out.println("哈哈");

}

}

xinlei x = new xinlei();

x.b();

System.out.println("呵呵");

}

public static void main(String[] args) {

Test03 dd = new Test03();

dd.a();

}

}

抽象类:

package day05;

/**

* 演示抽象类

* 1.用abstract修饰的类

* 2.只有方法定义,没有方法实现,抽象方法只能出现在抽象类中

* 3.抽象类包含抽象方法,但是也可以有普通方法,普通变量

* 4.创建对象,不能直接new,只能new子类的的实现,

*         子类如果想继承抽象类,必须重写所有的抽象方法,子类就不是抽象类了

* 5.如果不重写,那么子类也是抽象类,也不可以直接new

* @author yw.wang

*

*/

public abstract class AbstractTest01 {

public int a = 123;

abstract void haha();

public void hehe(){

System.out.println("fuckyou!!!");

}

public static void main(String[] args) {

def2 d2 = new def2();

d2.haha();

}

}

class def2 extends AbstractTest01{

void haha() {

//重写了抽象类父类的haha方法,现在不是一个抽象类,haha方法也不是抽象方法,所以可以直接new

System.out.println("我重写了父类的抽象方法!!");

}

}

接口:

package day05;

/**

* 接口演示:

* 接口只能包抽象方法和常量

* 在接口中方法如果没写abstract修饰,那么该方法被默认是抽象方法

* 只能new接口的实现类,也必须重写接口的抽象方法

* @author yw.wang

*

*/

public class InterfaceTest01 implements Interface,a,b,c {

@Override

//实现接口的抽象方法

public void function() {

System.out.println("实现了接口的抽象方法");

}

public static void main(String[] args) {

InterfaceTest01 in = new InterfaceTest01();

in.function();

}

}

interface Interface {

public int a =10;

public abstract void function();

}

interface a{}

interface b{}

interface c{}

接口和抽象类的区别:

1,java中所有的类的父类java.lang.Object,但是接口没有共同的根

接口可以当做抽象类使用,区别如下:

1,接口中的每个方法,没有实现部分,都是抽象方法,;抽象类中可以有具体的方法

2,接口中的数据必须是常量;抽象类可以有各种类型的数据

3,由于定义在接口中所有方法都是抽象方法,接口中可以省略abstract修饰符;

但是抽象类中的抽象方法必须用abstract修饰

来自为知笔记(Wiz)

时间: 2024-08-08 10:39:43

java面向对象小总结的相关文章

java 面向对象 小练习

public class renwu { public static void main(String[] args) { XiYouJiRenWu renwu1 = new XiYouJiRenWu(); renwu1.name="孙悟空"; renwu1.wuqi="金箍棒"; renwu1.printName(); renwu1.printWuqi(); XiYouJiRenWu renwu2 = new XiYouJiRenWu(); renwu2.name

Java 面向对象 的属性 和 方法 的使用 (Java 学习中的小记录)

Java 面向对象 的属性  和 方法 的使用        作者:王可利(Star·星星) //car 的属性方法 class Car { //属性 格式:数据类型 变量名 String color; String name; int wheelNumber; public void run(){ System.out.println("run 的方法 汽车启动了~"); } } //主函数的方法 class Star1 { public static void main(Strin

java面向对象编程(七)--四大特征之多态

1.多态概念 多态性是对象多种表现形式的体现.比如我们说"宠物"这个对象,它就有很多不同的表达或实现,比如有小猫.小狗.蜥蜴等等.那么我到宠物店说"请给我一只宠物",服务员给我小猫.小狗或者蜥蜴都可以,我们就说"宠物"这个对象就具备多态性. java中的多态,就是指一个引用(类型)在不同情况下的多种状态.也可以理解成,多态是指通过指向父类的指针,来调用在不同子类中实现的方法.也可以理解为"一个接口,多个方法". 实现多态有两种

第6篇-JAVA面向对象Ⅱ

第6篇-JAVA面向对象Ⅱ 每篇一句 :敢于向黑暗宣战的人,心中必定充满光明 初学心得: 面向对象 春暖花开 (笔者:JEEP/711)[JAVA笔记 | 时间:2017-04-05| JAVA面向对象 Ⅱ] 1.JAVA面向对象三大特征 1.封装(Encapsulation); 2.继承(Inheritance); 3.多态(Polymorphism) 2.面向对象 之 封装 什么是封装? 封装就是隐藏实现细节,仅对外提供访问接口 封装的类型有:属性封装.方法封装.类封装.组件封装.模块化封装

猫抓老鼠-Java面向对象特点梳理

我们先设计一个猫抓老鼠的小游戏: ⊙猫和老鼠都有名字和体重两种属性,猫有抓老鼠的方法,对应的老鼠则有逃跑的方法. ⊙首先游戏的结果是猫抓住了老鼠或者老鼠逃跑了,对于这两种情况,我们用体重来区分,若猫的体重大于或等于老鼠的体重,则猫可实现抓住老鼠的方法,若猫的体重小于老鼠的体重,则老鼠实现了逃跑的方法. 分析一下,第一步我们需要建立两个类:Cat.Mouse:并且分别声明其各自拥有的方法:  //Cat.java package Testprogramming //打包语句,将Cat类存于Test

【Java面向对象基础(一)】数据类型与运算符

[喵"的Android之路][基础篇(一)][Java面向对象基础]数据类型与运算符 1.数据类型介绍 在Java中,数据类型分为两种:基本数据类型和引用类型. 基本数据类型共8种,见下表: 基本数据类型 字节数 二进制位数 最小值 最大值 默认值 byte 1 8-bit -2^7 +2^7 - 1 0 short 2 16-bit -2^15 +2^15 - 1 0 int 4 32-bit -2^31 +2^31 - 1 0 long 8 64-bit -2^63 +2^63 - 1 0

java面向对象特征

java面向对象的特征:封装,继承,抽象,多态: --1--.封装: 什么叫做封装? 封装是把过程和数据包围起来,对数据的访问只能通过已定义的接口. 面向对象计算始于这个基本概念,即现实世界可以被描绘成一系列完全自治.封装的对象,这些对象通过一个受保护的接口访问其他对象. 封装是一种信息隐藏技术,在java中通过关键字private实现封装.什么是封装?封装把对象的所有组成部分组合在一起,封装定义程序如何引用对象的数据,封装实际上使用方法将类的数据隐藏起来,控制用户对类的修改和访问数据的程度.

Java面向对象的多态

Java中多态的概念是面向对象中除封装和继承外非常重要的知识点,也是Java面向对象三大特性最后一个特性 多态其实就是指对象存在的多种形态,多态分为引用多态和方法多态 引用多态的含义就是:父类的引用可以指向它本类的对象,不仅如此父类的引用还可以指向子类的对象,这就是引用多态 用简单的代码来看一下引用多态的含义: 动物类:Animal 1 public class Animal { 2 public Animal(){ 3 System.out.println("Animal类的构造方法被执行&q

Java面向对象㈡ -- 继承与多态

Java的继承是通过extends和implement来实现的,Java不支持多继承,但是Java支持多层继承以及多实现(接口).Java继承有一个关键字super是用来指向父类.Java继承衍生出覆盖的概念.覆盖被用来支持多态.实际开发中Java通常继承于抽象类,实现于接口.如果不希望一个类被继承,或者一个方法被覆盖,或者一个成员变量被改变,就可以用final修饰.这里只说明两个问题:1,重载和覆盖的区别重载和覆盖的区别:重载发生在同一个类之中,重载要求函数名相同,参数不同(参数个数||参数类