Java学习笔记16(面向对象九:补充内容)

总是看到四种权限,这里做一个介绍:

最大权限是public,后面依次是protected,default,private

private修饰的只在本类可以使用

public是最大权限,可以跨包使用,不同包的子类和无关类都可以使用,可以修饰类,方法,成员变量

不写权限就是default默认权限:限于本包内使用

protected权限:跨包后的类如果有继承关系(子类),不能使用default修饰的,而可以使用protected修饰的,调用时候必须在子类的里面才可以调用父类的受保护权限,注意protected不能修饰类

日常开发用的只有:public、private

另外注意:

abstract不可以与static,private,final写在一起

关于代码块:

示例

public class Person {
    private String name;
    private int age;
    public Person(String name,int age){
        this.age = age;
        this.name = name;
        System.out.println("构造方法");
    }
    //构造代码块
    {
        System.out.println("构造方法代码块");
    }
    //静态代码块
    static{
        System.out.println("静态代码块");
    }
}
//静态代码块,只执行一次
//构造代码块,每次创建对象都会执行,优先于构造方法
public class Test {
    public static void main(String[] args) {
        Person person1 = new Person("张三", 18);
        Person person2 = new Person("李四", 18);
    }
}
/*
输出:
静态代码块
构造方法代码块
构造方法
构造方法代码块
构造方法
*/

还有一些补充内容:

文档注释和生成jar包

随意写一个类

package demo;

/**
 * @author dell
 * @version 1.0
 */
public class Person {
    /**
     *
     * @param a
     * @param b
     * @return function
     */
    public int function(int a, int b){
        return a+b;
    }
}

利用eclipse,选择工程,右键export里面有选择Java,里面有Javadoc等文件,

选择后会生成一套网页,相当于说明书,可以查看相关内容

也可以选择java的其他选项,生成jar包等

导入jar包方式:

通常是在工程目录下新建一个lib文件夹,放入jar包,右键build path  -> add to build path,使用时候import就可以了

面向对象的补充:

1.类可以作为方法的参数传递,即方法的参数可以是一个对象,实质上是传递一个内存地址,在方法中进行对象的相关操作

2.和第一条类似,类也可以作为方法的返回值,即返回一个对象的引用

3.抽象类也可以作为方法的参数和返回值,区别在于:

抽象类没有对象,只能利用多态的特性传递(返回)抽象类的子类对象,注意接收返回值的时候类型必须是抽象类而不是子类

4.接口同样可以作为方法的参数和返回值:

接口也没有对象,必须传递接口的实现类对象,注意可以利用多态创建实现类对象也可以直接创建实现类对象,

同样,作为返回值的时候虽然传入的是实现类对象,但是接收的时候必须是接口类型

针对上面的补充内容写一个简单的案例来理解:

public abstract class Animal {
    public abstract void eat();
    public static Animal getInstance(){
        return new Cat();
    }
}
public class Cat extends Animal {
    public void eat(){
        System.out.println("猫在吃");
    }
}
public class Test {
    public static void main(String[] args) {
        Animal a = Animal.getInstance();
        a.eat();//输出:猫吃鱼
    }
}

原文地址:https://www.cnblogs.com/xuyiqing/p/8249962.html

时间: 2024-10-08 17:14:37

Java学习笔记16(面向对象九:补充内容)的相关文章

Java学习笔记<3>面向对象相关

面向对象的基本思想 从现实世界客观存在的事务出发来构造软件系统,并在系统的构造中尽可能运用人类的自然思维方式,如抽象.分类 继承.聚合.多态等. 类和对象的关系 对象中存储了类规定的数据类型,并且对象可以调用类的方法. java面向对象 <1>对象是java程序的核心,一切皆对象. <2>对象可以看成静态属性(成员变量)和动态属性(方法)的封装体. <3>类是创新同一类型对象的模版,定义了该类型对象应具有的成员变量及方法. 类的定义 成员变量可以用java语言的任何一种

java学习笔记之面向对象static,final关键字

java学习笔记之面向对象static,final关键字 一.static关键字 1.概述: static静态的,被static修饰的成员属于类,不属于单个对象,被所有对象所共享,存在静态区中,静态的成员优先于对象加载到内存中. 2.statc修饰成员的使用方式:(被static修饰的成员变量有默认值) /* 1.可以通过对象直接使用,不推荐使用 2.通过类名调用静态成员 类名.静态成员变量 类名.静态成员方法 */ 3.static的特点 /* 1.在同一个类中,静态成员只能访问静态成员,非静

【原】Java学习笔记014 - 面向对象

1 package cn.temptation; 2 3 public class Sample01 { 4 public static void main(String[] args) { 5 // 面向对象思想 6 7 // 回顾编程语言思想进化之路:从面向过程到面向对象 8 9 // 面向过程 10 // 举例: 11 // 1.冰箱门打开 12 // 2.大象放进去 13 // 3.冰箱门关上 14 // [面向过程的思路的着眼点在于动作的功能,思考打开.放入.关闭均为动作] 15 16

Android学习笔记(十九)——内容提供器

//此系列博文是<第一行Android代码>的学习笔记,如有错漏,欢迎指正! 内容提供器(Content Provider)主要用于在不同的应用程序之间实现数据共享的功能,它提供了一套完整的机制,允许一个程序访问另一个程序中的数据,同时还能保证被访数据的安全性.当一个应用程序通过内容提供器对其数据提供了外部访问接口,任何其他的应用程序就都可以对这部分数据进行访问.Android 系统中自带的电话簿.短信.媒体库等程序都提供了类似的访问接口,这就使得第三方应用程序可以充分地利用这部分数据来实现更

【原】Java学习笔记019 - 面向对象

1 package cn.temptation; 2 3 public class Sample01 { 4 public static void main(String[] args) { 5 // 仔细想一想,Animal应该是一个抽象的概念,相对于Animal来说,狗才是具体的概念 6 // Animal的行为也应该算是一个抽象的行为 7 8 // Java中对于这些抽象的概念或是抽象的行为,提供了一个关键字 abstract 来进行修饰 9 10 // 关键字 abstract用在类上,

【原】Java学习笔记015 - 面向对象

1 package cn.temptation; 2 3 public class Sample01 { 4 public static void main(String[] args) { 5 // 传递 值类型参数 和 传递 引用类型参数 6 int i = 2; 7 int j = 3; 8 System.out.println("方法调用前:i = " + i + ",j = " + j); 9 10 Calc calc = new Calc(); 11 i

JAVA学习笔记(四十九)- Swing相关组件

JFrame组件 import java.awt.Color; import javax.swing.JFrame; import javax.swing.JPanel; /* * Swing是在AWT基础上的扩展 * javax.swing包及其扩展包,组件的命名多以J开关 * * JFrame组件 */ public class Test08 { public static void main(String[] args) { JFrame frame=new JFrame("我的窗体&qu

【JAVA学习笔记】面向对象

编程语言的发展 面向过程的设计思想 面向对象的设计思想 对象和类的概念 类之间的关系 对象和引用 Java类的定义 构造函数 对象的创建和使用 this关键字 static关键字 package和import语句 访问控制 类的继承 方法的重写 final关键字 object类 对象转型 多态 抽象类 接口 编程语言的发展 机器语言 汇编语言 高级语言–面向过程的语言 面向对象的语言 面向过程的思想和面向对象的设计思想 面向对象思维: 合适的方法出现在合适类中 在问题域中,不再考虑一步一步的过程

java 学习笔记2 面向对象(上)

类和对象 类是某一批对象的抽象,可以把类理解成某种概念.对象是一个具体存在的实体.类和对象是面向对象的核心. 类定义的是多个实例的特征,类不是具体存在,实例才是具体存在. 定义类(class)的语法: [修饰符] class 类名 { 零个到多个构造器定义.... 零个到多个成员变量.... 零个到多个方法....} 要点:1.三种常见的成员:构造器(new关键字调用) 成员变量 方法 2.类名由一个或多个有意义的词连接而成,每个单词首字母大写,其余小写. 3.修饰符可以是public fina