JAVA学习
Sunset Coder
一个还有技术梦的发明专利审查员
展开
-
【JAVA学习路-think in java】p192:内部类如何链接到外部类
package pkg;interface Selector{ boolean end(); Object current(); void next();}public class p192 {// == Sequence private Object[] items; private int next=0; public p192(int si...原创 2020-02-16 02:04:00 · 155 阅读 · 0 评论 -
【JAVA学习路-think in java】p191:如何创建内部类详解
总结:创建内部类的方法:在static方法中,类名必须如此声明:OuterClassName.InnerClassName obj_inner,但在非static方法中,也可以用。 在static方法中,不能使用 new InnerClassName(),但是在非static方法中,可以使用new InnerClassName()package pkg;public clas...原创 2020-02-15 23:12:42 · 154 阅读 · 0 评论 -
【JAVA学习路-think in java】p187:接口工厂
总结:接口被实现时,方法必须被声明为public。package pkg;//--- service ----interface Service{ void method1(); void method2();}class imp1 implements Service{ imp1(){ System.out.println("imp 1 constructing")...原创 2020-02-15 00:44:49 · 151 阅读 · 0 评论 -
【JAVA学习路-think in java】p185:嵌套接口详解
总结:1、class中允许有private、protected、default、public接口,但interface中的接口只能是public的(隐public,不必声明); 2、class中的private接口,不能被继承。所以private接口只能在该class中被实现。 3、接口中的函数只能是public、static、abstract、default的,不能是private的;...原创 2020-02-15 00:02:14 · 243 阅读 · 0 评论 -
【JAVA学习路-think in java】p179:子类继承具体类和接口时,方法调用逻辑
package pkg;//... interface ...interface CanFight{// 1st void fight();//just a claim void jodo();}interface CanSwim{// 2nd void swim(); void frogswim();}interface CanFly{// 3rd void fly...原创 2020-02-13 01:47:46 · 206 阅读 · 0 评论 -
【转载】JAVA中的重写、重构和重载的概念区别
JAVA中的重写、重构和重载的概念对于一个刚入门Java爱好者来说,很容易能混,下面就说一下我对着三个概念的理解。1.重写,又称为覆盖,应用于父类和子类之间,子类中的成员方法和父类中的成员方法同名,但方法的实现或者方法的权限(只能比父类方法的权限大)或者方法的返回值类型(只能是父类返回值类型的子类)不同。 2.重构,是重写的一种,即子类成员方法和父类中成员的方法名相...转载 2020-02-12 23:51:27 · 2001 阅读 · 0 评论 -
Eclipse设置:如何“自动补全”变量名、函数名、类名
在我们编程的时候,会定义很多自定义的函数名,如果函数名够长,我们下次再次使用时,或许会难以准确输入正确。如果能像下图那样自动补全我们需要的变量名、函数名、类名等,那么将是一件极大的便利的事情。具体设置:菜单栏 ==> Windows ==> Preferences,具体选择如下,在红圈中输入:(注意最后的 “.” 不要遗漏)abcdefghijklmnopqr...原创 2020-02-11 01:30:48 · 2019 阅读 · 0 评论 -
【JAVA学习路-think in java】p167:upcast与downcast的使用规则
package pkg;class Useful{ public void f() {System.out.println("f(x)");}; public void g() {System.out.println("g(x)");};}class MoreUseful extends Useful{ public void f() {System.out.println("f(...原创 2020-02-09 01:04:03 · 248 阅读 · 0 评论 -
【JAVA学习路-think in java】p164:协变返回类型
package pkg;public class p164 { public static void main(String[] args) { Mill m=new Mill(); Grain g=new Mill().process(); System.out.println(g); // m=new WheatMill();// SUPPORT ONLY IN JAV...原创 2020-02-08 18:04:07 · 758 阅读 · 0 评论 -
【JAVA学习路-think in java】p163:在子类对象生成时,基类构造器调用子类同名函数发生的意料之外的事
package pkg;//mainpublic class p163 { public static void main(String[] args) { new Gextend(5); }}//*class Gbase{ Gbase(){ System.out.println("Gbase() before invoking methods:"); metho...原创 2020-02-07 02:03:14 · 313 阅读 · 0 评论 -
【转载】轻松理解java前期绑定(静态绑定)与后期绑定(动态绑定) 的区别
理论概念:以下是《java编程思想》原句摘抄:程序绑定的概念:绑定指的是一个方法的调用与方法所在的类(方法主体)关联起来。对java来说,绑定分为前期绑定(静态绑定)与后期绑定(动态绑定)。静态绑定:在程序执行前方法已经被绑定(也就是说在编译过程中就已经知道这个方法到底是哪个类中的方法),此时由编译器或其它连接程序实现。针对java简单的可以理解为程序编译期的绑定;这...转载 2020-02-07 00:55:45 · 251 阅读 · 0 评论 -
【JAVA学习路-think in java】p161:共享对象时,通过引用计数来清理对象
package pkg;public class p161 { public static void main(String[] args) throws Throwable { Shared shared = new Shared();//[1] Composing[] composings = new Composing[]{new Composing(shared),new C...原创 2020-02-06 21:54:19 · 231 阅读 · 0 评论 -
【JAVA学习路-think in java】p158:生成子类对象时,对基类构造器、静态数据的调用顺序
package pkg;class UsefulType{ UsefulType(String str) { System.out.println(str); }}//class Base_1{ Base_1(){ System.out.println("Base_1 constructing");//[5][9] } static void b1method() ...原创 2020-02-05 15:19:26 · 241 阅读 · 0 评论 -
【JAVA学习路-think in java】p155:利用upcast将改变的事物和不变的事物分离
package pkg;//baseclass Furniture{ void sayHello() { System.out.println("Furniture: hello!"); }}//extends 1class Chair extends Furniture{ void sayHello() { System.out.println("Chair: hell...原创 2020-02-04 19:52:26 · 1276 阅读 · 0 评论 -
【JAVA学习路-think in java】p148:阐释多态特点的经典举例 or Upcast的具体覆盖特点
package pkg;public class p148 { public static void main(String[] args) { A a1 = new A(); A a2 = new B();//KEY point //创建B对象,转化成A对象,拥有的成员函数:BshowA,AshowD B b = new B(); C c = new C(); D...原创 2020-02-03 01:24:25 · 184 阅读 · 0 评论 -
【JAVA学习路-think in java】p138:protected成员与子类的“通话”
package pkg;class Student{ private String name; Student(String name){ this.name=name; } protected void set(String nm) { name=nm; } protected void change() { name="Jack"; } public Stri...原创 2020-02-01 02:53:17 · 170 阅读 · 0 评论 -
【JAVA学习路-think in java】p136:@Override 继承中的覆盖及“未覆盖”错误提示
package pkg;class apple{ int func(int i) { System.out.println("func("+i+")"); return 0; } void func(char c) { System.out.println("func("+c+")"); } void func() {//unique,only one Sys...原创 2020-02-01 01:03:39 · 291 阅读 · 0 评论 -
【JAVA学习路-think in java】p130:继承之带参构造器
package pkg;class Basic2{// 1st Basic2(int i){ System.out.println("1st class, Basic constructor:"+i); } Basic2(){ System.out.println("1st class,Basic default constructor"); }}class Exte...原创 2020-01-31 20:19:55 · 305 阅读 · 0 评论 -
【JAVA学习路-think in java】p129:继承类的构造器调用顺序
package pkg;class Basic{// 1st Basic(){ System.out.println("Basic constructor"); }}class ExtendBasic extends Basic{//2nd ExtendBasic(){ System.out.println("Extend constructor"); }}pub...原创 2020-01-31 15:55:10 · 161 阅读 · 0 评论 -
【JAVA学习路-think in java】:在"不同包"中子类能够调用protected及default
package pkg2;import pkg.Base2;public class Charpter6inPkg2Extend extends Base2{ /*Charpter6inPkg2Extend objC=new Charpter6inPkg2Extend(); *NOT ALLOWED Exception in thread "main" java.lang.S...原创 2020-01-30 00:38:52 · 562 阅读 · 0 评论 -
【JAVA学习路-think in java】:public protected private在“同一包”中调用
package pkg;//import pkg.Chapter6;import zeng.Print;public class chapter6inPkg { public static void main(String[] args) { Base objB2=new Base();// can get not public CLASS in same package ...原创 2020-01-29 16:47:58 · 341 阅读 · 0 评论 -
【JAVA学习路-think in java】第6章:访问控制总结private protected public【全网最全】
摘要:private:仅仅针对类定义时,可以调用;(类作者保护机制) protected:在外部包中,无法调用*;(包作者保护机制) public:接口。(库用户的使用接口) 除了public外,外部包能访问的唯一途径:protected,且只能是在外包的子类定义时生成子类的对象,然后调用protected. default,约等于protected,唯一区别在于:default没有外...原创 2020-01-28 02:02:59 · 169 阅读 · 0 评论 -
【JAVA学习路-think in java】:public、protected、private在“不同包”中的调用
//----------------------in Pkg2 below ---------------------------package pkg2;import pkg.Base2;import pkg.ExtendBase2;import zeng.*;public class Chapter6inPkg2 { public static void main(Strin...原创 2020-01-28 01:59:34 · 473 阅读 · 0 评论 -
【JAVA学习路-think in java】:public、protected、private同一编译单元中的调用
package pkg;class Base{// a BASE class public int public_i=1; protected int protect_j=2; private int private_k=3; public double public_Base_ii=1.0; protected double protect_Base_jj=2.0; ...原创 2020-01-25 00:40:06 · 253 阅读 · 0 评论 -
【JAVA学习路-think in java】p114:如何定制工具库(尤其是print方法)
package zeng;import java.io.*;// NO PUBLIC main herepublic class Print { public static void println(Object obj){ System.out.println(obj); } public static void println(){ System.out.printl...原创 2020-01-21 02:15:21 · 239 阅读 · 0 评论 -
【JAVA学习路-think in java】p114:多个类库中相同存在相同类
package pkg;// learn about Randomimport java.util.*;public class p42 { public static void main(String[] args) { Random ran=new Random(914); System.out.println("ran="+ran); int i=ran.n...原创 2020-01-21 00:54:08 · 183 阅读 · 0 评论 -
【JAVA学习路-think in java】:调用其他的类库
package pkg2;//MUST be the first statementimport pkg.*;public class test { public static void main() { p42 obj=new p42(); }}package pkg;// learn about Randomimport java.util.*;public...原创 2020-01-21 00:32:54 · 252 阅读 · 1 评论 -
【JAVA学习路-think in java】p102:可变参数列表
package pkg;class a{}public class p102 { static void printFun1(Object[] args) {// Object for (Object tmp:args) System.out.print(tmp+","); System.out.println(); } static void print...原创 2020-01-18 18:19:43 · 198 阅读 · 0 评论 -
【JAVA学习路-think in java】p101:如何向其它类的main函数传递参数
package pkg;public class p101{// YOU should select this to RUN public static void main(String[] args) {// 1st MAIN function Other.main(new String[] {"table","cup","cat"}); }}class Other {/...原创 2020-01-17 00:20:56 · 242 阅读 · 0 评论 -
【JAVA学习路-think in java】p97:静态数据块static bulk的初始化顺序
package pkg;//1st classclass Cup{ Cup(int mark){ System.out.println("Cup"+mark);//【4】【5】【7】【11】【13】【15】 } static Cup cupItself=new Cup(9527);//【3】 // you can define an object even thoug...原创 2020-01-16 00:44:42 · 212 阅读 · 0 评论 -
【JAVA学习路-think in java】p95:静态数据的初始化顺序
package pkg;//1st classclass Bowel{ Bowel(int maker){//constructor System.out.println("Bowel:"+maker);//【3】【5】【11】【13】【15】【22】【29】【36】 } void f1(int maker) {//function 1 System.out.println(...原创 2020-01-14 23:46:28 · 336 阅读 · 0 评论 -
【JAVA学习路-think in java】p92:类与函数的位置关系 类的引用 类的方法调用
package pkg;public class p92 { int a; byte b; char c; p92 oneobject;//increditable void print(){ System.out.println("int a="+a); System.out.println("byte a="+b); System.out.println...原创 2020-01-13 23:25:08 · 185 阅读 · 0 评论 -
【JAVA学习路-think in java】p89:强制垃圾回收与业务逻辑检查
package pkg;class Book{ boolean checkedOut=false; Book(boolean checkOut){ checkedOut=checkOut; } void checkIn() { checkedOut=false; } protected void finalize() { if (checkedOut) Sy...原创 2020-01-13 02:38:57 · 188 阅读 · 0 评论 -
【JAVA学习路-think in java】p86:构造器中调用构造器+this
package pkg;class Flower{ int n=0; String s="Initial string"; //1st constructor Flower(int a){ n=a; System.out.println("Flower(int a):execute this, and n="+n); } //2nd constructor ...原创 2020-01-13 00:07:36 · 195 阅读 · 0 评论 -
【JAVA学习路-think in java】p85:类中不同方法的调用手段 this
package pkg;class car{ void mtd2(){ System.out.println("hello,world"); } void mtd1() { System.out.println("Invoke 1st method by THIS:"); this.mtd2();// the object itself invoke this, ...原创 2020-01-12 21:39:17 · 184 阅读 · 0 评论 -
【JAVA学习路-think in java】:print的常用函数+转义字符
package pkg;import java.util.*;public class test { public static void main(String[] args) { Random rand= new Random(47); for (int i=0;i<300;i++) { if (i%100==0) System.out.pri...原创 2020-01-11 02:26:32 · 255 阅读 · 0 评论 -
【JAVA学习路-think in java】p77:验证未初始化的String+构造器
package pkg;class Str23{//1st class String s;// you will see in output that String s is point to NULL Str23(String st){// self-defined constructor s=st; System.out.println("Created,i am: "+s)...原创 2020-01-11 01:56:00 · 166 阅读 · 0 评论 -
【JAVA学习路-think in java】p78:重载+构造器
package pkg;class Tree{//a class int h; //1st constructor:default Tree(){ System.out.println("Planting a seeding..."); h=0; } //2nd constructor Tree(int ih){ h=ih; System.out.printl...原创 2020-01-11 01:36:48 · 173 阅读 · 0 评论 -
【JAVA学习路-think in java】p67:构造器
package pkg;class Rock2{//a class Rock2(int i){// the constructor System.out.println("Rock"+i); } }public class p77 { public static void main(String[] args){ for (int i=0;i&l...原创 2020-01-10 23:43:09 · 141 阅读 · 0 评论 -
【JAVA学习路-think in java】p67:foreach语法(很适合简洁输出数据)
package pkg;//foreachimport java.util.*;public class p67 { public static void main(String[] args){ Random rand=new Random(47);//need java.util float f[]=new float[10];// how to creat a...原创 2020-01-09 00:46:31 · 151 阅读 · 0 评论